zoukankan      html  css  js  c++  java
  • HTTP接受文件的java实现

     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 }
  • 相关阅读:
    XtraBackup2.3.3安装配置使用(innobakupex)
    MySQL主从配置问题整理
    saltstack之(十二)配置管理mount
    常用HTTP状态码和CURL 000问题
    RHEL6解决无法使用YUM源问题
    zabbix监控MySQL
    ELK-Python(三)
    解决eclipse项目下出现deployment descriptor和jax-ws web services
    【未来畅想】未来的电信通讯行业,账号密码将取代sim卡
    最新samba.tar.gz安装方法
  • 原文地址:https://www.cnblogs.com/afluy/p/3136188.html
Copyright © 2011-2022 走看看