示例代码使用了两个开源框架:commons-io.jar和commons-fileupload.jar
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if(isMultipart) {
String dirPath = request.getSession().getServletContext().getRealPath("/files");
System.out.println(dirPath);
File dir = new File(dirPath);
if(!dir.exists()) {
dir.mkdirs();
}
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upLoad = new ServletFileUpload(factory);
try {
List<FileItem> items = upLoad.parseRequest(request);
for(FileItem item: items) {
if(item.isFormField()) {
String name = item.getFieldName();// 得到请求参数的名称
String value = item.getString();// 得到请求参数的内容
System.out.println("name : "+name+"\tvalue : "+value);
} else {
// 获得文件名称。这里加上系统时间是为了可以多次上传同一张图片
String fileName = System.currentTimeMillis()+item.getName();
item.write(new File(dir, fileName));
}
}
} catch (Exception e) {
e.printStackTrace();
}
} else {
doGet(request, response);
}
}