标签: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
标签:style blog http java color 使用
原文地址:http://www.cnblogs.com/mihu/p/3793139.html