31.文件上传下载-基于Apache FileUpload组件
2018-06-19 本文已影响0人
若愚同学
使用Apache FileUpload上传组件实现文件上传.
步骤:
//1.导jar包
commons-fileupload-1.2.2.jar commons-io-1.4.jar
//2.
参考压缩包中的commons-fileupload-1.2.2/site/using.html文件
检查请求的相关条件(请求方式是否是post,请求的编码类型是否是multipary/打头)
boolean isMulti = ServletFileUpload.isMultipartContent(req);
if(isMulti){
return;
}
try {
//2.创建一个FileItem的工厂对象.
DiskFileItemFactory factory = new DiskFileItemFactory();
//通过factory对象,去创建文件上传处理器
ServletFileUpload upload = new ServletFileUpload(factory);
//解析请求,解析之后,得到Fileitem的集合,将表单元素封装 成一个一个的FileItem对象
List<FileItem> list = upload.parseRequest(req);
for (FileItem item : list) {
//此时item有可能是普通的控件,也有可能是上传控件
if(item.isFormField()){//普通数据
//普通表单控件
System.out.println(item.getFieldName());
}else{//文件数据
System.out.println(item.getContextType());
System.out.println("Name:"+item.getName());
//路径
String path = this.getServletContext().getRealPath("/WEB-INF/upload");
item.write(new File(path, "xxx.jpg"));
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}