1 package TOOLS; 2 3 import java.io.BufferedOutputStream; 4 import java.io.File; 5 import java.io.FileOutputStream; 6 import java.io.IOException; 7 import java.io.InputStream; 8 import java.io.OutputStream; 9 import java.util.HashMap; 10 import java.util.Map; 11 12 import javax.servlet.http.HttpServletRequest; 13 import javax.servlet.http.HttpServletResponse; 14 import org.apache.commons.fileupload.FileItemIterator; 15 import org.apache.commons.fileupload.FileItemStream; 16 import org.apache.commons.fileupload.FileUploadException; 17 import org.apache.commons.fileupload.servlet.ServletFileUpload; 18 import org.apache.commons.fileupload.util.Streams; 19 20 public class HTTPPostAcceptPhoto { 21 22 Map<String,String> result = new HashMap<String,String>(); 23 24 public Map<String,String> analyze(HttpServletRequest request, 25 HttpServletResponse response,String imageurl) { 26 if (ServletFileUpload.isMultipartContent(request)) {// 判断是否含有文件 27 insertPIC(request,imageurl); 28 } else { 29 txthandle(request, response); 30 } 31 return result; 32 } 33 //写出图片 34 private void insertPIC(HttpServletRequest request,String url) { 35 36 ServletFileUpload upload = new ServletFileUpload(); 37 FileItemIterator iter; 38 try { 39 iter = upload.getItemIterator(request); 40 while (iter.hasNext()) { 41 FileItemStream item = iter.next(); 42 String name = item.getFieldName();// filename 43 InputStream stream = item.openStream(); 44 System.out.println("文本" + item.isFormField()); 45 if (item.isFormField()) {// 如果是文本 46 txt(result,name, Streams.asString(stream,"utf-8")); 47 } else { 48 String dir = request.getSession().getServletContext() 49 .getRealPath(url); 50 OutputStream fileos = null; 51 byte[] buff = new byte[1]; 52 File image =new File(dir, item.getName()); 53 System.out.println(" item.getName():"+ item.getName()); 54 fileos = new BufferedOutputStream(new FileOutputStream( 55 image)); 56 57 while ((stream.read(buff)) != -1) { 58 fileos.write(buff); 59 } 60 fileos.flush(); 61 fileos.close(); 62 result.put("imagename", item.getName());//返回图片名字 63 } 64 } 65 } catch (FileUploadException e) { 66 // TODO Auto-generated catch block 67 System.out.println(e); 68 } catch (IOException e) { 69 // TODO Auto-generated catch block 70 System.out.println(e); 71 } 72 } 73 //有文本时的操作 74 private void txt(Map<String,String> result,String name, String asString){ 75 result.put(name, asString); 76 } 77 //纯文本操作 78 public void txthandle(HttpServletRequest request, 79 HttpServletResponse response){ 80 result = request.getParameterMap(); 81 } 82 83 }