传统的表单上传,我觉得有两个典型的特点,一个就是在<form>标签中,通过像下面这样指定属性实现文件上传:
<form>
<form id= "uploadForm" action= "http://localhost:8080/cfJAX_RS/rest/file/upload" method= "post" enctype ="multipart/form-data">
另一个就是<input>标签的type属性:
<input>
<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异步提交请求,这样是最好的。