我正在使用使用大量ajax的grails创建一个web应用程序。我想使用ajax实现文件上传。我不知道如何使用ajax进行文件上传。我的示例GSP代码是:
<!-- code for file upload form--> <div id="updateArea"> </div>
我尝试了和。上传后,我想用结果更新“ updateArea”。结果,我打算显示上传文件的详细信息。
通过Ajax上载文件实际上是不可能的。您仍然可以使用隐藏的iframe在后台上传文件,并评估响应(位于iframe内)或在上传完成后触发另一个ajax调用。
<g:form name="upload-form" action="upload" method="post" enctype="multipart/form-data" target="hidden-upload-frame"> File: <input type="file" name="myFile" /> <button type="submit">Upload</button> </g:form> <iframe id="hidden-upload-frame" name="hidden-upload-frame" style="display: none" onload="onUploadComplete"> </iframe> <script type="text/javascript"> function onUploadComplete(e) { // Handle upload complete alert("upload complete"); // Evaluate iframe content or fire another ajax call to get the details for the previously uploaded file } </script>
另一种选择是使用基于Flash的上传机制(例如swfupload)代替iframe。