要求:
1、表单的method属性设置为post
2、enctype="multipart/form-data" //表单必须设置该属性二进制
servlet实现文件上传
1、使用注解@MultipartConfig将Servlet标识为支持文件上传
2、Servlet3.0将multipart/form-data的POST请求封装成Part,通过Part对上传的文件进行操作。
3、实现代码:
(1)单文件上传:
Part part = request.getPart("file");
part.write(savePath+File.separator+fileName);
(2)多文件:
Collection<Part> parts = request.getParts();
ajax文件上传
1、ajax设置processData和contentType属性
processData: false//参数序列化
contentType: false //fasle二进制
2、传递的data参数:
new FormData($("#form1")[0])
总结:
$.ajax({
url: "../TestServlet01",
data: new FormData($("#form1")[0]),
type: "post",
//cache: false,//上传文件无需缓存
processData: false,//用于对data参数进行序列化处理 这里必须false
contentType: false, //必须
success: function (result) {
alert("上传完成!");
}
})