public void upload(HttpServletRequest request, HttpServletResponse response){
//创建解析工厂
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setRepository(new File(this.getServletContext().getRealPath("/WEB-INF/temp")));//设置文件缓存目录
//创建解析器
ServletFileUpload load = new ServletFileUpload(factory);
load.setHeaderEncoding("UTF-8");
//解析request得到封装FileItem的list
try{List list = load.parseRequest(request);//list.size() is 0
for(int i=0; i<list.size(); i++) {
FileItem item = (FileItem)list.get(i);
if(!item.isFormField()){
String name = item.getName();
if(!name.trim().equals("")){
name = name.substring(name.lastIndexOf("\\")+1);
//拿到inoutStream流
InputStream inputStream = item.getInputStream();
String path =this.getServletContext().getRealPath("/WEB-INF/upload");
File file = new File(path);
if(!file.exists())
file.mkdirs();
//定义输出流
OutputStream outputStream = new FileOutputStream(path+"\\"+name);
int len = 0;
byte data[] = new byte[1024];
while((len=inputStream.read(data))!=-1)
outputStream.write(data, 0, len);
inputStream.close();
outputStream.flush();
outputStream.close();
item.delete();//删除临时文件
}
}
}
request.setAttribute("message","上传成功");
} catch (Exception e) {
e.printStackTrace();
request.setAttribute("message","上传失败");
}finally{
try {
request.getRequestDispatcher("/message.jsp").forward(request, response);
} catch (Exception e) {
e.printStackTrace();
}
}
}...
|