zoukankan      html  css  js  c++  java
  • 使用commons-fileupload包进行大文件上传注意事项

    项目中使用

    commons-fileupload-1.2.1.jar

    进行大文件上传。

    测试了一把,效果很不错。

    总结如下:

    1. 必须设置好上传文件的最大阀值

      final long MAX_SIZE = 10 * 1024 * 1024 * 1024;// 设置上传文件最大为 10G 

    2. 必须设置文件上传服务器上的临时目录

      // 文件上传参数配置
      // 创建一个新的文件上传句柄  
      DiskFileItemFactory factory = new DiskFileItemFactory();  
      // 设置内存缓冲区,超过后写入临时文件
      factory.setSizeThreshold(4096);  
      // 设置上传到服务器上文件的临时存放目录 -- 非常重要,防止存放到系统盘造成系统盘空间不足
      factory.setRepository(new File("F:\uploadFileTemp"));
      ServletFileUpload upload = new ServletFileUpload(factory);  
      upload.setHeaderEncoding("utf-8"); 
       
      // 设置单个文件的最大上传值
      upload.setSizeMax(MAX_SIZE);  // 文件上传上限10G

    3. 上传成功后一定要删除临时目录的临时文件

      fileItem.delete(); // 请务必调用,在文件上传结束后,删除临时目录的文件...

    4. 最好记录下文件从开始上传到上传结束的时间点,这个对今后文件上传时间的分析很有用

        另外,因为Struts2的上传功能也引入了该包,但是却做了拦截器限制文件的最大上传大小为2M,可以通过修改它的配置文件动态更改上传文件的大小;而且,Struts会在文件上传成功后,帮你删除掉临时文件。

        我这里使用的是Spring MVC,需要在上传类中指定最大上传文件大小,(这玩意一般不动态设置,最大上传文件大小一般是系统的标准,是让使用者遵循滴),而且必须在上传成功后删除临时文件。

  • 相关阅读:
    选择语句(if else) 习题(2017/12/1)
    Java代码空格问题
    设置背景图片
    寄存器
    8086微处理器的组成和工作原理
    8086引脚
    换行的训练
    彩票 双色球 36选7
    函数
    字符串
  • 原文地址:https://www.cnblogs.com/ae6623/p/4416391.html
Copyright © 2011-2022 走看看