Android文件图片上传的详细讲解(四)---服务端编码

来源:互联网 发布:《大数据时代》pdf 编辑:程序博客网 时间:2024/05/17 06:11
 

服务端上传采用commons-fileupload上传相关的文件。

Java代码  收藏代码
  1. package com.easyway.fileupload;  
  2.   
  3. import java.io.BufferedInputStream;  
  4. import java.io.File;  
  5. import java.io.FileOutputStream;  
  6. import java.io.IOException;  
  7. import java.io.InputStream;  
  8. import java.io.PrintWriter;  
  9. import java.util.List;  
  10.   
  11. import javax.servlet.Servlet;  
  12. import javax.servlet.ServletConfig;  
  13. import javax.servlet.ServletException;  
  14. import javax.servlet.http.HttpServlet;  
  15. import javax.servlet.http.HttpServletRequest;  
  16. import javax.servlet.http.HttpServletResponse;  
  17.   
  18. import org.apache.commons.fileupload.FileItem;  
  19. import org.apache.commons.fileupload.FileItemFactory;  
  20. import org.apache.commons.fileupload.FileUploadException;  
  21. import org.apache.commons.fileupload.disk.DiskFileItemFactory;  
  22. import org.apache.commons.fileupload.servlet.ServletFileUpload;  
  23. /** 
  24.  * 文件上传的Serlvet类 
  25.  *  
  26.  * Servlet implementation class FileImageUploadServlet 
  27.  *  
  28.  *    此处的文件上传比较简单没有处理各种验证,文件处理的错误等。 
  29.  * 如果需要处理,请修改源代码即可。 
  30.  * @Title:  
  31.  * @Description: 实现TODO 
  32.  * @Copyright:Copyright (c) 2011 
  33.  * @Company:易程科技股份有限公司 
  34.  * @Date:2012-7-22 
  35.  * @author  longgangbai 
  36.  * @version 1.0 
  37.  */  
  38. public class FileImageUploadServlet extends HttpServlet {  
  39.     private static final long serialVersionUID = 1L;  
  40.     private ServletFileUpload upload;  
  41.     private final long MAXSize = 4194304*2L;//4*2MB  
  42.     private String filedir=null;  
  43.          
  44.     /** 
  45.      * @see HttpServlet#HttpServlet() 
  46.      */  
  47.     public FileImageUploadServlet() {  
  48.         super();  
  49.         // TODO Auto-generated constructor stub  
  50.     }  
  51.   
  52.     /** 
  53.      * 设置文件上传的初始化信息 
  54.      * @see Servlet#init(ServletConfig) 
  55.      */  
  56.     public void init(ServletConfig config) throws ServletException {  
  57.         FileItemFactory factory = new DiskFileItemFactory();// Create a factory for disk-based file items  
  58.         this.upload = new ServletFileUpload(factory);// Create a new file upload handler  
  59.         this.upload.setSizeMax(this.MAXSize);// Set overall request size constraint 4194304  
  60.         filedir=config.getServletContext().getRealPath("images");  
  61.         System.out.println("filedir="+filedir);  
  62.     }  
  63.   
  64.     /** 
  65.      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
  66.      */  
  67.     @SuppressWarnings("unchecked")  
  68.     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
  69.         // TODO Auto-generated method stub  
  70.         PrintWriter out=response.getWriter();  
  71.         try {  
  72.             List<FileItem> items = this.upload.parseRequest(request);  
  73.             if(items!=null  && !items.isEmpty()){  
  74.                 for (FileItem fileItem : items) {  
  75.                     String filename=fileItem.getName();  
  76.                     String filepath=filedir+File.separator+filename;  
  77.                     System.out.println("文件保存路径为:"+filepath);  
  78.                     File file=new File(filepath);  
  79.                     InputStream inputSteam=fileItem.getInputStream();  
  80.                     BufferedInputStream fis=new BufferedInputStream(inputSteam);  
  81.                     FileOutputStream fos=new FileOutputStream(file);  
  82.                     int f;  
  83.                     while((f=fis.read())!=-1)  
  84.                     {  
  85.                        fos.write(f);  
  86.                     }  
  87.                     fos.flush();  
  88.                     fos.close();  
  89.                     fis.close();  
  90.                     inputSteam.close();  
  91.                     System.out.println("文件:"+filename+"上传成功!");  
  92.                 }  
  93.             }  
  94.             System.out.println("上传文件成功!");  
  95.             out.write("上传文件成功!");  
  96.         } catch (FileUploadException e) {  
  97.             e.printStackTrace();  
  98.             out.write("上传文件失败:"+e.getMessage());  
  99.         }  
  100.     }  
  101.   

0 0
原创粉丝点击