标签:
今天做了一下java的简单的文件上传,使用的是commons-fileupload-1.3.1.jar。依赖于commons-io-2.4.jar。所以在导入包的时候也需要导入这个commons-io-2.4.jar。至于版本之间的关系,我并没有好好的去看,我使用的这两个还是很很友好合作的。
使用这两个包来上传文件到服务器端,是比较简单的。大致的就分为两个部分,一个是html页面部分的设置,一个是servlet部分的代码。
html页面
1 <form action="uploadFile" method="post" enctype="multipart/form-data"> 2 <input type="file" name="file"> 3 <input type="submit" value="上传"> 4 </form>
FileUpload parses HTTP requests which conform to RFC 1867, "Form-based File Upload in HTML". That is, if an HTTP request is submitted using the POST method, and with a content type of "multipart/form-data", then FileUpload can parse that request, and make the results available in a manner easily used by the caller.
这个是Apache 官网上的一句话,给出了这样的form表单的设置的要求。
然后是servlet页面,我将最简单的代码部分给出,没有任何的设置,没有文件上传的大小的限制,就写了个最简单的能够完成上传的代码,如果有需要设置的话,可以自己查一下。
1 DiskFileItemFactory disk=new DiskFileItemFactory(); 2 ServletFileUpload upload=new ServletFileUpload(disk); 3 List<FileItem> list=upload.parseRequest(request); 4 Iterator iterator=list.iterator(); 5 while(iterator.hasNext()){ 6 FileItem item=(FileItem)iterator.next(); 7 FileName=item.getName(); 8 Path="d:\\"+FileName; 9 item.write(new File(Path)); 10 }
这个我给定的是一个指定的存储位置,当然,可以获得服务器当前的位置,然后在服务器端新建一个文件夹用来存放相应的文件。
通过这样的几句代码,就可以完成文件的上传,而且,当上传多个文件的时候,只在html页面增加类型为file的input标签,服务器端servlet可以不用增加任何代码。
之后将增加一个progress lisetener 用来监听上传的进度。
end
标签:
原文地址:http://www.cnblogs.com/wuxiongliu/p/4278042.html