通过ajax方式上传文件

传统的表单上传,我觉得有两个典型的特点,一个就是在<form>标签中,通过像下面这样指定属性实现文件上传:

<form id= "uploadForm" action= "http://localhost:8080/cfJAX_RS/rest/file/upload" method= "post" enctype ="multipart/form-data">

另一个就是<input>标签的type属性:

<input type="submit" onclick="test()"/>
这两个特点,我觉得可以用来辨别是否是传统方式,注意:`通过传统方式提交后台,会自动刷新页面,已弃用`。下面的方式利用ajax提交文件,使用到FormData对象:

在使用Formdata上传数据时,发现在form标签中,没有enctype属性也是可以的。不过最好还是加上。

var formData = new FormData($("#uploadForm" )[0]);
//提交表单上传信息
$.ajax({
url: Feng.ctxPath + "/geneReport/update",
type: 'POST',
data: formData,
async: false,
cache: false,
contentType: false,
processData: false,
success: function (returndata) {
alert(returndata);
},
error: function (returndata) {
alert(returndata);
}
});
总结:使用ajax异步提交请求,这样是最好的。