posts - 89, comments - 241, trackbacks - 0, articles - 1
             :: 首頁 ::  :: 聯系 :: 聚合  :: 管理

          低調的apache fileUpload應用

          Posted on 2009-09-23 12:08 saobaolu 閱讀(1348) 評論(0)  編輯  收藏 所屬分類: javaweb
          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包沒有導入貌似便會報錯。
          點擊下載這兩個包的最新版。
          /Files/chenglu/java/FileUpLoad.zip


          沒有所謂的命運,只有不同的選擇!
          主站蜘蛛池模板: 花莲县| 兴山县| 富宁县| 自治县| 宁强县| 梨树县| 宿松县| 色达县| 集安市| 孝昌县| 荣成市| 兴文县| 丹凤县| 天等县| 青铜峡市| 咸宁市| 信阳市| 银川市| 林西县| 南岸区| 临泉县| 乾安县| 呼和浩特市| 莱西市| 宿州市| 凌源市| 祁连县| 正阳县| 湖南省| 河源市| 松滋市| 灯塔市| 通山县| 安平县| 冕宁县| 商都县| 清远市| 攀枝花市| 陈巴尔虎旗| 沈丘县| 宜州市|