上传图片前端js代码如下:
var MEimgFile = $("#MEimg")[0].files[0];
var MEimgForm = new FormData();
MEimgForm.append("file", MEimgFile);
var xhr = new XMLHttpRequest();
xhr.open("post", FileServlet, true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
var resultJson = $.parseJSON(xhr.responseText);
if (resultJson.code == 1) {
MEimgUrl = resultJson.imgUrl;
$("#feedbackMEimg").html('');
$("#feedbackMEimg").html('上传成功!');
uploadMEimgpositiveFile();
} else {
$("#feedbackMEimgFile").html('上传失败!请稍后重试');
}
}
}
xhr.send(MEimgForm);
这是原生的ajax,下面是用juqery封装好的ajax。
var MEimgForm = new FormData();
MEimgForm.append("file", MEimgFile);
$.ajax({
type : 'post',
url : 'insertReserveExpertServlet',
data : MEimgForm ,
processData : false,
contentType : false,
async:false,
dataType : 'json',
success : function(result) {
},
error : function(result) {
}
});
如果图片太大,测试的时候用的3M大小的图片,用jquery封装好的ajax就用遇到一种问题。
图片上传成功了,但返回函数执行的是error。
百度了一通,说是上传时间过长导致的,解决方法是修改tomcat的配置文件,记不太清了。
我试了一下,用原生的ajax就不会出现上面那个问题,也就是用第一种方法。
但上传时候确实挺长的,3M的图片上传了12秒,或许可以对图片进行压缩,有没有大神知道更好的方法呀!