IT忍者神龟之基于cos.jar 的 图片上传

文件上传的方法有很多,可以基于commons-fileupload+commons-io的,其实也有基于cos.jar的方法,Jar 可以去http://www.servlets.com/cos/index.html 下载.

 

下面就以一个简单的图片上传+根据具体选项修改文件名的方法:

 

1.先写一个servlet类:

 

Java代码  
  1. package com.lee.util;  
  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.DiskFileUpload;  
  14. import org.apache.commons.fileupload.FileItem;  
  15.   
  16. import java.util.Enumeration;  
  17.   
  18. import com.lee.util.test.MyFileRenamePolicy;  
  19. import com.oreilly.servlet.MultipartRequest;  
  20. import com.oreilly.servlet.multipart.FileRenamePolicy;  
  21.   
  22. import javax.servlet.ServletException;  
  23. import javax.servlet.http.HttpServlet;  
  24. import javax.servlet.http.HttpServletRequest;  
  25. import javax.servlet.http.HttpServletResponse;  
  26.   
  27. import com.oreilly.servlet.MultipartRequest;  
  28.   
  29. public class FileUpload extends HttpServlet {  
  30.       
  31.      private String webTempPath;  
  32.   
  33.        
  34.         public void init( ){  
  35.         webTempPath = getServletContext( ).getRealPath("/") + "images/item";      
  36.         }  
  37.   
  38.         public void doPost(HttpServletRequest request,   
  39.                             HttpServletResponse response)  
  40.             throws ServletException, java.io.IOException {  
  41.             String itemNo = request.getParameter("itemNo");  
  42.            //file limit size of 5 MB  
  43.             MultipartRequest mpr = new MultipartRequest(request,webTempPath,(5 * 1024 * 1024),new MyFileRenamePolicy(itemNo));  
  44.             Enumeration enum2 = mpr.getFileNames( );  
  45.               
  46.   
  47.               
  48.             response.setContentType("text/html");  
  49.             java.io.PrintWriter out = response.getWriter( );  
  50.           
  51.             out.println("<html>");  
  52.             out.println("<head>");  
  53.             out.println("<title>Servlet upload</title>");    
  54.             out.println("</head>");  
  55.             out.println("<body>");  
  56.               
  57.             for (int i = 1; enum2.hasMoreElements( );i++){  
  58.                   
  59.                   
  60.                 out.println("The name of uploaded file " + i +  
  61.                   " is: " + mpr.getFilesystemName((String) enum2.nextElement( )) +"/"+itemNo  
  62.                     + "<br><br>");  
  63.             }  
  64.             out.println("</body>");  
  65.             out.println("</html>");  
  66.           
  67.               
  68.         }   
  69.   
  70.         public void doGet(HttpServletRequest request,   
  71.                            HttpServletResponse response)  
  72.             throws ServletException, java.io.IOException {  
  73.               
  74.             throw new ServletException("GET method used with " +  
  75.                 getClass( ).getName( )+": POST method required.");  
  76.         }   
  77.   
  78. }  

 

 

2. 编程HTML代码:

 

 

Html代码  
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">  
  2. <html>  
  3. <head>  
  4.         <title>Please Choose The File</title>  
  5. </head>  
  6. <body bgcolor="#ffffff">  
  7. <table border="0"><tr>  
  8.   
  9. <form action="upload" method="post" enctype="multipart/form-data">  
  10.   
  11. <td valign="top">请选择文件:<br></td>  
  12.   
  13. <td> <input type="file" name="file1">  
  14.   
  15. <br><br>  
  16. </td></tr>  
  17.   
  18. <tr><td><input type="submit" value="上传文件"></td></tr>  
  19. </form>  
  20.   
  21. </table>  
  22. </body>  
  23. </html>  

 

 

3.当然是XML的编写..

 

Java代码  
  1. <servlet>    
  2.      
  3.           <servlet-name>upload</servlet-name>    
  4.      
  5.           <servlet-class>com.lee.util.test.UploadTest</servlet-class>           
  6.      
  7.       </servlet>    
  8.      
  9.       <servlet-mapping>    
  10.      
  11.           <servlet-name>upload</servlet-name>    
  12.      
  13.           <url-pattern>/upload</url-pattern>    
  14.      
  15.       </servlet-mapping>    
 

 

你可能感兴趣的:(IT忍者神龟之基于cos.jar 的 图片上传)