0

我正在使用 jQuery 表单上传文件并将它们保存到数据库中,我的代码在 chrome 和 mozilla 中运行良好,但在 Internet Explorer 中无法开始上传;我是 grails 框架,我的代码如下:

<g:form controller="uploadImage" action="uploadImage" enctype="multipart/form-data" name="imageUploaderForm" id="imageUploaderForm">
    <input type="file" name="image" id="image" onchange="submitImageUploaderForm()" />
    <g:hiddenField name="imageType" value=""/>
</g:form>

$("#imageUploaderForm").ajaxForm({
    uploadProgress: function(event, position, total, percentComplete) {
        $("#progressbar").progressbar({
            value : percentComplete
        });
        $(".progress-label").html(percentComplete+" %");
    },
    complete: function(response){
        //something
    }
});

function submitImageUploaderForm(){
    //This method gets called !
    $("#imageUploaderForm").submit();
}

在控制器中我有以下内容

def uploadImage = {
    def response = [result:false,message:"Image could not be uploaded.",uploadInstanceId:0]
    def uploadImage = new UploadImage(params)
    if(uploadImage.save()) response = [result:true,message: "Image uploaded sucessfully.",uploadInstanceId:uploadImage.id]
    render response as JSON
}

当我尝试上传文件时,页面中没有任何反应,但过了一段时间后出现以下异常:

Message: Could not parse multipart servlet request; nested exception is org.apache.commons.fileupload.FileUploadException: Read timed out
4

2 回答 2

0

我在 Internet Explorer 中使用隐藏的 iFrame 上传文件,而在其他浏览器中,文件是使用上面显示的代码使用 AJAX 上传的。

于 2013-03-20T04:44:51.060 回答
0

遗憾的是,通过 Ajax 上传文件在 IE 中是行不通的。请参阅有关文件上传的 jQuery 文档。http://jquery.malsup.com/form/#file-upload

正如 James 指出的那样,这个问题以前曾被问过,而且它并不是 Grails 特有的。 带有文件上传的 JQuery Ajax 表单在 IE 中不起作用

于 2013-03-20T01:19:08.730 回答