FileUpload上传总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FileUpload上传总结相关的知识,希望对你有一定的参考价值。

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上传总结的主要内容,如果未能解决你的问题,请参考以下文章

如何在 PrimeNG 的 FileUpload 组件中中止文件上传?

jQuery fileupload 多文件上传

文件上传fileupload文件接收

使用apache的fileupload组件上传文件怎么解决编码问题?

用fileupload控件上传文件怎样使上传的文件显示在指定的位置

widgets.FileUpload - 读取上传的 CSV