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();
}
上一篇下一篇

猜你喜欢

热点阅读