zoukankan      html  css  js  c++  java
  • Servlet上传文件直接处理方式

    在开发的过程当中,经常遇到用文件上传的方式批量处理数据的方式,以前碰到的情况是先将文件保存到本地的临时文件,然后用poi的方式来进行处理,但是实际上,操作过程只是简单的读取操作,所以就不用那么复杂,下面记录了用servlet的javax.servlet.http.Part包的方式来处理这个功能。代码如下:

    Part part=request.getPart("标签name");
             String filename=getFileName(part.getHeader("content-disposition") );
             Boolean resultCode = true;
             StringBuffer result=new StringBuffer();
             //校验
             if(StringHelper.isEmpty(filename)){
                 result.append("请上传文件");
                 resultCode = false;
             }else if(!filename.endsWith("csv")){
                 result.append("上传文件只支持csv");
                 resultCode = false;
             }
             if(resultCode){
                 BufferedReader reader = new BufferedReader(new InputStreamReader(part.getInputStream())); 
                 String line=null; 
                 boolean isFirst=true;
                 while ((line = reader.readLine()) != null) { 
                        if(!isFirst){
                            result.append(line).append(",");
                        }else{
                         isFirst=false; 
                        }
                 } 
                 if(0<result.length()){
                     result=result.delete(result.length()-1, result.length());
                 }
             } 
             response.setContentType("text/html;charset=UTF-8");
             response.getWriter().print("<script type='text/javascript'>parent.callBack('"+result.toString()+"','"+resultCode+"');</script>");
             response.getWriter().close();
             return;

     private String getFileName(String header) { 
              if(!StringHelper.isEmpty(header)){
                   String[] tempArr1 = header.split(";");
                   String[] tempArr2 = tempArr1[2].split("="); 
                   String fileName = tempArr2[1].substring(tempArr2[1].lastIndexOf("\")+1).replaceAll(""", "");
                   return fileName;
              }else{
                  return "";
              }
         }
  • 相关阅读:
    java把集合数据写入txt文档
    eclipse 启动报内存溢出的问题out of memory!
    面向对象基础知识整理
    在不同环境下MD5加密相同字符串,密文不一样的问题
    氮化镓选型
    碳化硅选型
    DSP选型
    FPGA选型
    MCU选型
    正点原子
  • 原文地址:https://www.cnblogs.com/smashed/p/4710037.html
Copyright © 2011-2022 走看看