Apache FileUpload文件上传实现

本文转载:http://www.blogjava.net/chenglu/archive/2009/09/23/apache_fileupload.html

Apache FileUpload可以应用于很多方面
现将一应用贴出
FileUploadServlet.java

 1  package  Servlet;
 2 
 3  import  java.io.File;
 4  import  java.io.IOException;
 5  import  java.util.Iterator;
 6  import  java.util.List;
 7   
 8  import  javax.servlet.ServletException;
 9  import  javax.servlet.http.HttpServlet;
10  import  javax.servlet.http.HttpServletRequest;
11  import  javax.servlet.http.HttpServletResponse;
12   
13  import  org.apache.commons.fileupload.FileItem;
14  import  org.apache.commons.fileupload.disk.DiskFileItemFactory;
15  import  org.apache.commons.fileupload.servlet.ServletFileUpload;
16   
17  @SuppressWarnings( " serial " )
18  public   class  FileUploadServlet  extends  HttpServlet {
19       private  String uploadPath  =   " D:\\temp " //  上传文件的目录
20       private  String tempPath  =   " d:\\temp\\buffer\\ " //  临时文件目录
21      File tempPathFile;
22   
23      @SuppressWarnings( " unchecked " )
24       public   void  doPost(HttpServletRequest request, HttpServletResponse response)
25              throws  IOException, ServletException {
26          try  {
27              //  Create a factory for disk-based file items
28             DiskFileItemFactory factory  =   new  DiskFileItemFactory();
29   
30              //  Set factory constraints
31             factory.setSizeThreshold( 4096 );  //  设置缓冲区大小,这里是4kb
32             factory.setRepository(tempPathFile); //  设置缓冲区目录
33   
34              //  Create a new file upload handler
35             ServletFileUpload upload  =   new  ServletFileUpload(factory);
36   
37              //  Set overall request size constraint
38             upload.setSizeMax( 4194304 );  //  设置最大文件尺寸,这里是4MB
39   
40             List < FileItem >  items  =  upload.parseRequest(request); //  得到所有的文件
41             Iterator < FileItem >  i  =  items.iterator();
42              while  (i.hasNext()) {
43                FileItem fi  =  (FileItem) i.next();
44                String fileName  =  fi.getName();
45                 if  (fileName  !=   null ) {
46                    File fullFile  =   new  File(fi.getName());
47                    File savedFile  =   new  File(uploadPath, fullFile.getName());
48                    fi.write(savedFile);
49                }
50             }
51             System.out.print( " upload succeed " );
52         }  catch  (Exception e) {
53              //  可以跳转出错页面
54             e.printStackTrace();
55         }
56      }
57   
58       public   void  init()  throws  ServletException {
59         File uploadFile  =   new  File(uploadPath);
60          if  ( ! uploadFile.exists()) {
61             uploadFile.mkdirs();
62         }
63         File tempPathFile  =   new  File(tempPath);
64           if  ( ! tempPathFile.exists()) {
65             tempPathFile.mkdirs();
66         }
67      }
68  }
upload页面:
1  < form  name ="myform"  action ="FileUpload"  method ="post"  enctype ="multipart/form-data" >
2  File: < br >
3     < input  type ="file"  name ="myfile" >< br >
4     < br >
5      < input  type ="submit"  name ="submit"  value ="Commit" >
6  </ form >

一般来说,要使用apache fileUpload这个插件,一般要导入两个jar包
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
如果这个io包没有导入貌似便会报错。
点击下载这两个包的最新版。

你可能感兴趣的:(apache,upload,jar,File,null,buffer)