2009-12-02 79 views

回答

9
  1. 創建一個web項目。
  2. 至少包含以下內容創建一個JSP文件:

    <form action="upload" method="post" enctype="multipart/form-data"> 
        <input type="file" name="file"> 
        <input type="submit"> 
    </form> 
    
  3. 轉到Apache Commons FileUpload homepage閱讀兩個User GuideFrequently Asked Questions部分。

  4. 下載二進制文件下列庫

  5. 拆開拉鍊和放置在Web項目的/WEB-INF/lib的JAR文件。

  6. 至少包含以下內容創建一個Servlet類:

    public class UploadServlet extends HttpServlet { 
        @Override 
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
         List<FileItem> items = null; 
         try { 
          items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request); 
         } catch (FileUploadException e) { 
          throw new ServletException("Cannot parse multipart request.", e); 
         } 
         for (FileItem item : items) { 
          if (item.isFormField()) { 
           // Process regular form fields here the same way as request.getParameter(). 
           // You can get parameter name by item.getFieldName(); 
           // You can get parameter value by item.getString(); 
          } else { 
           // Process uploaded fields here. 
           String filename = FilenameUtils.getName(item.getName()); // Get filename. 
           File file = new File("/path/to/uploads", filename); // Define destination file. 
           item.write(file); // Write to destination file. 
          } 
         } 
         // Show result page. 
         request.getRequestDispatcher("result.jsp").forward(request, response); 
        } 
    } 
    
  7. 地圖這個servlet在web.xml如下:

    <servlet> 
        <servlet-name>upload</servlet-name> 
        <servlet-class>mypackage.UploadServlet</servlet-class> 
    </servlet> 
    <servlet-mapping> 
        <servlet-name>upload</servlet-name> 
        <url-pattern>/upload</url-pattern> 
    </servlet-mapping> 
    

這應該是它。當您在JSP中提交表單時,它將調用與該servlet的<url-pattern>匹配的動作/upload,然後該小服務程序將在doPost()方法中執行其任務。最後,這很簡單。希望這可以幫助。

+0

掌聲詳細的答案,但這些初學者問題的逐步回答有一個缺點 - 提問者不會爲了達到他想要的目的而移動他的手指,這不是一個好的教訓。它並不總是「stackoverflow的人都無所不知」;) – Bozho 2009-12-02 11:56:19

相關問題