码迷,mamicode.com
首页 > Web开发 > 详细

FileUpload上传总结

时间:2017-09-16 00:29:29      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:上传   items   数据   disk   under   cto   ems   请求   消息   

1、 文件上传写Fileupload代码时导包的是commons,而不是apach包

2、 创建一个工厂DiskFileItemFactory factory=new DiskFileItemFactory();
将请求消息尸体中的每一个项目封装成单独的DiskFileitem对象

3、 创建解析文件上传的核心对象

ServletFileUpload upload=new ServletFileUpload(factory);

4、 解析有客户端通过request上传的请求:

List<FileItem>items=upload.parseRequest(request);

5、遍历这个集合,判断是普通的表单上传还是文件上传
   for (FileItem item : items) {

                   //item.isFormField(),是用来判断当前的FileItem是否是普通的表单

                   if (item.isFormField()) {

                      //普通表单

                      //获取文件名称

                      String name=item.getFieldName();

                      String value=item.getString();

                   }else {

                      //文件上传

                      String fileName=item.getName();

                      //使用UUID改写文件名,防止多少次上传会有重名的文件覆盖

                      fileName=UUIDUtils.getUUID()+fileName;

                      //获取文件上传数据,将数据保存到服务器硬盘

                      //获取当前项目真实路径

                      String realPath=getServletContext().getRealPath("/upload");

                      //目录打散

                      String dir = DirUtils.getDir(fileName);

                      //保证计算处理的文件路径真实存在,所以先手动创建多级目录

                      new File(realPath, dir);

                      //将数据写出

                      try {

                         //文件输出的位置

                         item.write(new File(realPath,fileName));

                      } catch (Exception e) {

                         // TODO Auto-generated catch block

                         e.printStackTrace();

                      }

                     

                   }

                }

FileUpload上传总结

标签:上传   items   数据   disk   under   cto   ems   请求   消息   

原文地址:http://www.cnblogs.com/LeoZou622/p/7529178.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!