Grails formRemote multipart获取onSuccess数据

时间:2013-01-25 12:27:41

标签: jquery ajax grails multipart

当我使用g:form时,我正在使用Grails进行foto上传 一切正常,文件被解析,转换并在控制器中进入会话 并作为响应我渲染一个包含foto和一些隐藏输入的模板,因为下一步是裁剪图像并发回新的坐标..

这是“uploadForm”代码:

<g:form name="uploadForm" onSuccess="sucess()" enctype="multipart/form-data" url="[controller:ProfileEditor, action:"preview${type.capitalize()}", params:[profilId:profilId]]" >
<input type="file" name="${type}" />
<input type="submit" value="<g:message code="button.${type}.upload" />">
</g:form>
<div id="uploadPreview"></div>
<script type="text/javascript">
    function success() {
        $('#uploadPreview').html(data);
    alert("upload complete");   
}
</script>

我希望将响应插入到

('#uploadPreview')

而不是点击提交按钮,浏览器导航到url-attr中指定的网址,其中包含带有图像的模板

问题是当我使用g:formRemote时没有发布数据,就像enctype =“multipart / form-data”被完全忽略一样,afaik通过ajax上传文件有点棘手,我们已经解决了使用jquery form.js并且它是ajaxForm,它不需要formRemote,并且可以在同一页面上传foto,但我们不能再使用它导致严重的会话问题和脚本错误随机在chrome / ium和opera中 所以我必须找到另一种方式

这是简单的form.js方式,在sucessFunction上面的代码中就是:

-       var options =  {
-           beforeSubmit : function() {
-               uploadPreview.empty();
                },  
-           complete : function(xhr) {
-               percent.empty();
-               uploadPreview.html(xhr.responseText);
-           }
-       };
-       $('#uploadForm').ajaxForm(options);

并且我想知道是否有一个简单的解决方案使用formRemote将文件作为formData发布并更新div,因为ajax-foto上传并在包装表单中进行裁剪是常见的事情?

提前致谢

0 个答案:

没有答案