当提交表单里包含文件上传的时候,即Form的enctype属性值为multipart/form-data时,后台是无法像普通表单那样通过
这时候,当然可以通过解析提交到服务器的数据流来得到数据了,但是这样不但麻烦而且容易出错。
最好的方式是使用第三方的jar包获取数据,这方面有很多现成的成熟优秀的jar包。最常用的时以下三个:
apache的commons-fileupload : http://commons.apache.org/fileupload/
O'Reilly的cos:http://www.servlets.com/cos/index.html
jspsmart的SmartUpload:https://www.cnblogs.com/bhlsheji/p/4390795.html
我用的是commons-fileupload,目前主要使用这个java组件多一些,并且也相对稳定一些
一.部署
1.把commons-fileupload-1.2.1.jar和commons-io.jar导入到WEB-INF/lib下,IDE会自动进行配置
二.实例演示
1.自己看代码,都有相关注释,ajax部分
function insertintoSumbit(){
//与传统的ajax请求区别就在于传输的数据类型不同
var formData = new FormData(document.getElementById("insertFrom"));//必须是new FormData后台才能接收到
formData.append("orp", "insertinto");
$.ajax({
"url" : "servlet/FileUploadControl.do",
"type" : "post",
"data" : formData,
"async": false,
"cache": false,
"cont