基于cos.jar 的 图片上传

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

 

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

 

1.先写一个servlet类:

 

package com.lee.util;

import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.DiskFileUpload;
import org.apache.commons.fileupload.FileItem;

import java.util.Enumeration;

import com.lee.util.test.MyFileRenamePolicy;
import com.oreilly.servlet.MultipartRequest;
import com.oreilly.servlet.multipart.FileRenamePolicy;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.oreilly.servlet.MultipartRequest;

public class FileUpload extends HttpServlet {
	
	 private String webTempPath;

	 
	    public void init( ){
	    webTempPath = getServletContext( ).getRealPath("/") + "images/item";    
	    }

	    public void doPost(HttpServletRequest request, 
	                        HttpServletResponse response)
	        throws ServletException, java.io.IOException {
	        String itemNo = request.getParameter("itemNo");
	       //file limit size of 5 MB
	        MultipartRequest mpr = new MultipartRequest(request,webTempPath,(5 * 1024 * 1024),new MyFileRenamePolicy(itemNo));
	        Enumeration enum2 = mpr.getFileNames( );
	        

	        
	        response.setContentType("text/html");
	        java.io.PrintWriter out = response.getWriter( );
	    
	        out.println("<html>");
	        out.println("<head>");
	        out.println("<title>Servlet upload</title>");  
	        out.println("</head>");
	        out.println("<body>");
	        
	        for (int i = 1; enum2.hasMoreElements( );i++){
	        	
	        	
	            out.println("The name of uploaded file " + i +
	              " is: " + mpr.getFilesystemName((String) enum2.nextElement( )) +"/"+itemNo
	                + "<br><br>");
	        }
	        out.println("</body>");
	        out.println("</html>");
	    
	        
	    } 

	    public void doGet(HttpServletRequest request, 
	                       HttpServletResponse response)
	        throws ServletException, java.io.IOException {
	        
	        throw new ServletException("GET method used with " +
	            getClass( ).getName( )+": POST method required.");
	    } 

}

 

 

2. 编程HTML代码:

 

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
        <title>Please Choose The File</title>
</head>
<body bgcolor="#ffffff">
<table border="0"><tr>

<form action="upload" method="post" enctype="multipart/form-data">

<td valign="top">请选择文件:<br></td>

<td> <input type="file" name="file1">

<br><br>
</td></tr>

<tr><td><input type="submit" value="上传文件"></td></tr>
</form>

</table>
</body>
</html>

 

 

3.当然是XML的编写..

 

<servlet>  
   
          <servlet-name>upload</servlet-name>  
   
          <servlet-class>com.lee.util.test.UploadTest</servlet-class>         
   
      </servlet>  
   
      <servlet-mapping>  
   
          <servlet-name>upload</servlet-name>  
   
          <url-pattern>/upload</url-pattern>  
   
      </servlet-mapping>  
 

 

你可能感兴趣的:(java,apache,html,编程,servlet)