如果我使用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) {
}
});
}
答案 0 :(得分:1)
另外看看另一个类似的问题 FormData not working in Internet Explorer?
对于不支持FormData对象的旧浏览器,您可以先在此处检查浏览器是否支持它How can I check if the browser support HTML5 file upload (FormData object)?
如果浏览器不支持,您可以遍历表单dom元素并创建一个json对象来设置为$ .ajax方法的数据属性值。如果您要上传任何文件,请查看Iframe Upload Solution