使用commons-fileupload包进行大文件上传注意事项

简介: 项目中使用 commons-fileupload-1.2.1.jar 进行大文件上传。 测试了一把,效果很不错。   总结如下: 必须设置好上传文件的最大阀值final long MAX_SIZE = 10 * 1024 * 1024 * 1024;// 设置上传文件最大为...

项目中使用

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

目录
相关文章
|
1月前
|
Java
java通过commons-fileupload实现多张图片的上传(servlet)
java通过commons-fileupload实现多张图片的上传(servlet)
23 2
|
1月前
|
前端开发 Java
java通过commons-fileupload实现多张图片的上传(jsp页面)
java通过commons-fileupload实现多张图片的上传(jsp页面)
16 2
|
Java easyexcel
Java:SpringBoot使用EasyExcel实现Excel文件的导出下载和上传导入功能
Java:SpringBoot使用EasyExcel实现Excel文件的导出下载和上传导入功能
500 0
Java:SpringBoot使用EasyExcel实现Excel文件的导出下载和上传导入功能
|
2月前
|
存储 Java Maven
【JavaEE进阶】 Maven jar 包下载失败问题的解决方法
【JavaEE进阶】 Maven jar 包下载失败问题的解决方法
|
前端开发 数据库
struts2实现的文件上传下载案例(二)、FileUpLoad文件的下载
struts2实现的文件上传下载案例(二)、FileUpLoad文件的下载
78 0
|
Java
struts2实现的文件上传下载案例(一)、FileUpLoad
struts2实现的文件上传下载案例(一)、FileUpLoad
220 0
struts2实现的文件上传下载案例(一)、FileUpLoad
|
存储 Java Apache
java积累——apache commons fileupload 实现文件上传
java积累——apache commons fileupload 实现文件上传
290 0
|
Java Apache Maven
使用commons-fileupload时,文件上传与表单参数同时提交时的后台代码处理
把Form表单是的enctype="multipart/form-data"是基于流的,只能获取一次,重复获取将为空,当上传文件的input控件与hidden的input字段混合时,直接用request.getParameter一般是不行的.
175 0
|
存储 Java
Java Web(十二) commons-fileupload上传下载
今天心态正常。。。继续努力。。
175 0