@MultipartConfig // 1.设置Servlet可以处理Multipart请求
public class UploadServlet3 extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//2.设置文件存放目录
String savePath = getServletContext().getRealPath("/WEB-INF/upload");
//3.获取form表单上传的多个文件
List<Part> parts = (List<Part>) request.getParts();
//4.循环遍历多个文件
for(Part part : parts) {
//5.截取文件名
//经过过request请求信息的分析,原文件名在头信息的Content-Disposition中,所以获取Content-Disposition的值如下
//form-data; name="file"; filename="文件名.后缀名"
String header = part.getHeader("Content-Disposition");
int index = header.lastIndexOf("="); //获取最后的等号索引
String fileName = header.substring(index+2,header.length()-1);
//6.判断文件名是否满足要求,如果满足则保存到指定目录下
if (fileName != null && !fileName.equals("")) {
part.write(savePath+"/"+fileName);
}
}
}
}
第五步也可以改为
String header = part.getHeader("Content-Disposition").replace("\"", "");
int index = header.lastIndexOf("="); //获取最后的等号索引
String fileName = header.substring(index+1);