码迷,mamicode.com
首页 > 其他好文 > 详细

commons-fileupload源码学习心得

时间:2014-07-02 18:15:47      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   java   color   使用   

commons-fileupload依赖于commons-io包。

commons-fileupload的使用方法:

  1.创建一个文件项目工厂类DiskFileItemFactory。

        DiskFileItemFactory有俩个构造方法:

1 DiskFileItemFactory() 其中sizeThreshold是默认值10kB, 文件大小不超过这个值将内容保存在内存,超过这个值会把文件保存到临时目录下,可用System.getProperty("java.io.tmpdir")获取;
2 DiskFileItemFactory(int sizeThreshold, File repository)  可以指定sizeThreshold, 和文件保存到磁盘的路径。

        DiskFileItemFactory有一个属性FileCleaningTracker,设置这个属性可以用来追踪删除临时文件。当这个临时文件不再被使用时将会被立即删除,更精确的说是这个文件对象被垃圾收集器回收时,FileCleaningTracker将启动收获者线程(reaper thread)自动删除这个临时文件。FileCleaningTracker是commons-io包的工具类。  

1 FileCleaningTracker fileCleaningTracker = FileCleanerCleanup.getFileCleaningTracker(servletcontext);
2 DiskFileItemFactory factory = new DiskFileItemFactory();
3 factory.setFileCleaningTracker(fileCleaningTracker);  
4 ServletContext获取的几种方法:
5     Javax.servlet.http.HttpSession.getServletContext();
6     Javax.servlet.jsp.PageContext.getServletContext();
7     Javax.servlet.ServletConfig.getServletContext();

  2.创建一个文件处理类ServletFileUpload。

    ServletFileUpload解析上传请求request的信息,封装到FileItem类中,我们通过FileItem可以获取文件的名称、大小、文件流等信息。

1 ServletFileUpload sfu = new ServletFileUpload(factory);
2   ServletFileUpload可以设置:
3     headerEncoding 读取请求头信息时使用的编码
4     sizeMax 单次请求所能上传的文件总大小的最大size,默认是-1,不限制大小
5     fileSizeMax 单次请求所能上传的单个文件最大size,默认是-1,不限制大小
6 List<FileItem> items = sfu.parseRequest(req);

 

ServletFileUpload对上传请求信息的解析流程:

  文件上传的html代码如下:

1 <form action="http://server.dom/cgi/handle" enctype="multipart/form-data" method=POST>
2   What is your name? <input type=text name=submitter/>
3   What files are you sending? <input type=file name=pics/>
4 </form>

    浏览器传送的数据格式如下:

 1    Content-type: multipart/form-data, boundary=AaB03x
 2 
 3   --AaB03x
 4 
 5   content-disposition: form-data; name="field1"
 6 
 7   Joe Blow
 8 
 9   --AaB03x
10 
11   content-disposition: form-data; name="pics"; filename="file1.txt"
12 
13   Content-Type: text/plain
14 
15   ... contents of file1.txt ...
16 
17   --AaB03x--

 

 

 

  

commons-fileupload源码学习心得,布布扣,bubuko.com

commons-fileupload源码学习心得

标签:style   blog   http   java   color   使用   

原文地址:http://www.cnblogs.com/mihu/p/3793139.html

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