ajax 文件上传与Servlet获取数据
function upload() {
var type = "file";
var formData = new FormData();
//文件上传
formData.append(type,$("#upfile")[0].files[0]);
formData.append("mname",$("input[name='mname']").val());
formData.append("mintr",$("input[name='mintr']").val());
formData.append("mcharacter",$("input[name='mcharacter']").val());
formData.append("mtype",$("input[name='mtype']").val());
$.ajax({
type:"POST",
url:"UploadServlet",
data : formData,
processData : false,
contentType : false,
async:false,//设置成true,这标志着在请求开始后,其他代码依然能够执行。如果把这个选项设置成false,这意味着所有的请求都不再是异步的了,这也会导致浏览器被锁死
error:function(request){//请求失败之后的操作
return;
},
success:function(data){//请求成功之后的操作
console.log("success");
}
});
}
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
String savePath = "E:\\test";
// 存储路径
// String savePath = request.getServletContext().getRealPath("E:\\test");
// 获取上传的文件集合
String mname =request.getParameter("mname");
String mintr=request.getParameter("mintr");
String mcharacter=request.getParameter("mcharacter");
String mtype=request.getParameter("mtype");
System.out.println(mname);
System.out.println(mintr);
System.out.println(mcharacter);
System.out.println(mtype);
Part part = request.getPart("file");
String header = part.getHeader("content-disposition");
String fileName = getFileName(header);
part.write(savePath + File.separator + fileName);
PrintWriter out = response.getWriter();
out.println("上传成功");
out.flush();
out.close();