1

如果我使用 multipart/form-data 获取图像数据,为什么图像上传功能在 Internet Explorer9 中不起作用。如何在 Internet Explorer 中上传图片。

这是我用来上传图片的代码。

      var formData = new FormData($('form')[1]);


    var onclick_attr=$('#Upload').attr('onclick');
     $.ajax({
            url: '${pageContext.servletContext.contextPath}/UploadImage',
            data: formData,
            type: 'POST',
            cache: false,
            contentType: false,
            processData: false,
            beforeSend: function(xhr) {
                $('#process-img-div').hide();
                $('#uploading-img').show();
                $('#Upload').attr('onclick','').css('opacity','0.5');
                $('#loader-imgforlogo').show();
            },
            success: function(xhr) {

                var str = xhr.split('&');
                for(var i=0; i<str.length; i++) {
                    var keys = str[i].split(':');
                    if(keys[0]=='Name')
                        fileName = keys[1];
                    else if(keys[0]=='Width')
                        imgWidth = keys[1];
                    else if(keys[0]=='Height')
                        imgHeight = keys[1];
                    else if(keys[0]=='Path')
                        filePath = keys[1];
                    }

                $('#preview').attr({
                               'src':'${pageContext.servletContext.contextPath}/uploads/'+fileName
                });

                $('#process-img-div').show();
                $('#uploading-img').hide();
            },
            complete:function(jqXHR, textStatus){
                $('#Upload').attr('onclick',onclick_attr).css('opacity','1');
                $('#loader-imgforlogo').hide();
                $.fancybox.close(); 

            },
            error: function(xhr) {

            }
    });
     }
4

1 回答 1

1

在 IE10 之前,Internet Explorer 不支持 FormData 对象。IE9 不支持 FormData 对象。所以它不适用于 IE9 检查FormData Object支持的浏览器

另请查看另一个类似的问题 FormData not working in Internet Explorer?

对于不支持 FormData 对象的旧版浏览器,您可以先在此处检查浏览器是否支持如何检查浏览器是否支持 HTML5 文件上传(FormData 对象)?

如果浏览器不支持,可以遍历表单dom元素,创建一个json对象,设置为$.ajax方法数据属性值。如果您要上传任何文件,请查看iframe 上传解决方案

于 2012-11-27T09:08:42.517 回答