Ajax grails中的远程文件上载

Ajax grails中的远程文件上载,ajax,grails,frameworks,asyncfileupload,Ajax,Grails,Frameworks,Asyncfileupload,我正在使用grails创建一个Web应用程序,grails使用了大量ajax。我想使用ajax实现文件上传。我不知道如何使用ajax进行文件上传。我的示例GSP代码是: <!-- code for file upload form--> <div id="updateArea"> </div> 我尝试了和。上载后,我想用结果更新“updateArea”。因此,我计划显示上载文件的详细信息。通过Ajax上载文件实际上是不可能的。您仍然可以使用隐藏的ifr

我正在使用grails创建一个Web应用程序,grails使用了大量ajax。我想使用ajax实现文件上传。我不知道如何使用ajax进行文件上传。我的示例GSP代码是:

<!-- code for file upload form-->
<div id="updateArea">

</div>


我尝试了和。上载后,我想用结果更新“updateArea”。因此,我计划显示上载文件的详细信息。

通过Ajax上载文件实际上是不可能的。您仍然可以使用隐藏的iframe在后台上传文件,并评估repsonse(然后在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>

文件:
上传
功能完成(e){
//处理上传完成
警报(“上传完成”);
//评估iframe内容或调用另一个ajax调用以获取先前上载文件的详细信息
}

另一个选择是使用基于flash的上传机制(例如),而不是iframe。

嗨,Siegfried Puchbauer。我试过你的答案。但是iframe在mozilla firefox和IE浏览器中不起作用。我试过谷歌chrome浏览器。它起作用了。如何在IE和firefox中起作用?嗨。对不起,这是个打字错误。通常,您必须定义iframe的name属性,而不是我无意中定义的id属性。谢谢你的回答和快速反应。现在问题解决了。看看答案