首页 > 代码库 > java 文件上传

java 文件上传

java 上传文件 
如果不依赖框架的话 
要利用 Apache 中几个jar文件来处理
 
1、  给表单设置enctype属性,其值为 "multipart/form-data",另外,提交方式必须是post。
2、     在服务器端,不能够直接使用request.getParameter方法来获得数据。
只能使用InputStream request.getInputStream();通过分析这个字节流来获得数据。一般通过一些工具来分析。
3、要利用 Apache 中几个jar文件来处理 来分析文件流  主要要用到的几个jar 包。
commons-fileupload-1.2.2.jar
commons-io-2.0.1.jar
commons-lang-2.5.jar
 
 
 
package download;
 
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.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
 
public class FileUnload extends HttpServlet{
 
 @Override
 protected void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
       String path = request.getSession().getServletContext().getRealPath("filedownload");
 
  if(ServletFileUpload.isMultipartContent(request)){
   DiskFileItemFactory factory = new DiskFileItemFactory(); // 基于磁盘文件项目创建一个工厂对象
   factory.setRepository(factory.getRepository());
   ServletFileUpload unload = new ServletFileUpload(factory); // 创建一个新的文件上传对象
   int fileSize = 10*1024*1024; // 最大上传文件大小<= 10M
   List formLists = null;
   FileItem formItem;
     try {
    formLists = unload.parseRequest(request);// 解析上传
   
   } catch (FileUploadException e) {
   } finally {
   }
     Iterator iter = formLists.iterator(); // 枚举方法
     while(iter.hasNext()){
      formItem = (FileItem) iter.next();
      if(!formItem.isFormField()){
       if(formItem.getName()!=null &&!formItem.getName().equals("")){
        long unloadSize = formItem.getSize();
        if(unloadSize>fileSize){
         System.out.println("文件大小超过10M!");
         return;
        }
       }
      String unloadFileName = formItem.getName();
      String newFileName = path+File.separator+unloadFileName;
      File file = new File(newFileName);
      try {
     formItem.write(file);
    } catch (Exception e) {
     e.printStackTrace();
    }
     
      }
     
     }
 
 
  }
 
 
 
 }
 
}

java 文件上传