public class FileUpLoadServlet extends HttpServlet {
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// dfif对象为解析器提供解析时的缺省的一些配置
DiskFileItemFactory dfif = new DiskFileItemFactory();
// 创建解析器
ServletFileUpload sfu = new ServletFileUpload(dfif);
// 开始解析(分析InputStream)
// 每一个表单域当中的数据都会
// 封装到一个对应的FileItem对象上。
try {
List<FileItem> items = sfu.parseRequest(request);
for (int i = 0; i < items.size(); i++) {
FileItem item = items.get(i);
// 要区分是上传文件域还是普通的表单域
if (item.isFormField()) {
// 普通表单域
String name = item.getString();
System.out.println("name:" + name);
} else {
// 上传文件域
// ServletContext:servlet上下文对象。
ServletContext sctx = getServletContext();
// 依据逻辑路径返回实际部署时的物理路径
String path = sctx.getRealPath("upload");
// 获得原始的文件名
String filename = item.getName();
// 将FileItem对象中的数据写到指定的文件。
File file = new File(path + "\\" + filename);
item.write(file);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}