2009-12-02 87 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

相关问题