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 "";
          }
     }
时间: 2024-10-09 04:38:11

Servlet上传文件直接处理方式的相关文章

使用Servlet上传文件

使用浏览器向服务器上传文件其本质是打开了一个长连接并通过TCP方式传输数据.而需要的动作是客户端在表单中使用file域,并指定该file域的name值,然后在form中设定enctype的值为multipart/form-data和method值为post.其他就如同一般表单一样.示例如下: <form name="form" action="uploadbyservlet1" enctype="multipart/form-data" m

Servlet上传文件

1.准备工作 (1)利用FileUpload组件上传文件,需要到apache上下载commons-fileupload-1.3.1.jar 下载地址:http://commons.apache.org/fileupload/ (2)由于文件上传还得有IO流传输,需要到apache上下载commons-io-2.4.jar 下载地址:http://commons.apache.org/io/ 2.正式开发 (1)新建文件上传界面 file.jsp: <%@ page language="ja

异步上传文件多种方式归纳

最近在做异步上传文件的工作,用到了一些库,这里归纳下,暂且不考虑异常处理,仅作为demo. 1.不用任何插件,利用iframe,将form的taget设为iframe的name,注意设为iframe的id是没用的,跟网上很多说的不太一致 iframe_upload.htm <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtm

前端之web上传文件的方式

前端之web上传文件的方式 本节内容 web上传文件方式介绍 form上传文件 原生js实现ajax上传文件 jquery实现ajax上传文件 form+iframe构造请求上传文件 1. web上传文件方式介绍 在web浏览器上传文件一般有以下几种方式: form表单上传文件 原生js实现ajax上传文件 jquery实现ajax上传文件 form+iframe上传文件 其中form提交数据之后会整个刷新页面:js通过ajax上传文件虽然不会刷新整个页面,但是他们都是通过使用formdata对

Jquery_异步上传文件多种方式归纳

1.不用任何插件,利用iframe,将form的taget设为iframe的name,注意设为iframe的id是没用的,跟网上很多说的不太一致 iframe_upload.htm <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns=&

servlet上传文件(四)

1.servlet上传文件 servlet上传文件就是将客户端的文件上传到服务器端. 向服务器发送数据时,客户端发送的http请求正文采用"multipart/form-data"数据类型,他表示复杂的多个子部分的复合表单. 为了简化"multipart/form-data"数据的处理过程.可以使用Apache组织提供是的两个开源包来来实现上传. fileupload软件包(commons-fileupload-1.2.1.jar),负责文件上传的软件包. io软件

Asp.Net Mvc异步上传文件的方式

今天试了下mvc自带的ajax,发现上传文件时后端action接收不到文件, Request.Files和HttpPostedFileBase都接收不到.....后来搜索了下才知道mvc自带的Ajax不支持文件上传,无奈之下只能用其他的方式 第一种方式:通过 jquery的ajaxSubmit --->(先引入jQuery脚本)需要引入jquery.form.min.js(可以通过NuGet下载) 直接上代码 @{ Layout = null; } <!DOCTYPE html> <

原生Servlet 上传文件

依赖jar <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.4</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <a

5.servlet 上传文件

一.maven依赖 <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>commons-io</groupId> &l