`

response 流 文件下载

阅读更多

1,由于参数数据量大使用form,post的方式调后台,传参数,数据量大一定要用post方式

<form id="downloadForm" method="post" action="<%=request.getContextPath()%>/business/com.asiainfo.boss.so.order.base.web.soframe.FileInputUtilAction?action=createDownExcel">
  <input type="hidden" id="ERRORMSG" name="ERRORMSG"/>
 </form>

2、在jsp中用js调用:errMsg是要传到后台解析生成文件的数据

document.getElementById("ERRORMSG").value = errMsg;
document.getElementById("downloadForm").submit();

3、后台代码:

 public void createDownExcel(HttpServletRequest request,HttpServletResponse response)throws Exception{
     try {
      
      String errMsg=HttpUtil.getAsString(request, "ERRORMSG");
      HSSFWorkbook workbook =null;
   if(errMsg!=null&&!"".equals(errMsg)){
    String[] errMsgArr=errMsg.split("\\$\\$");
    if(errMsgArr!=null&&errMsgArr.length>0){
      workbook= new HSSFWorkbook();
      HSSFSheet sheet =workbook.createSheet("failrecord");
      for(int i=0;i<errMsgArr.length;i++){
       HSSFRow row=sheet.createRow(i);
      String tempMsg[]=errMsgArr[i].split("#");
      String tipMsg=tempMsg[1];
      String[] colMsgArr=tempMsg[0].split(",");
      for(short j=0;j<colMsgArr.length;j++){
       HSSFCell cell=row.createCell(j);

       cell.setEncoding(HSSFCell.ENCODING_UTF_16);//设置编码
       cell.setCellValue(colMsgArr[j]);
       
      }
       HSSFCell celltip=row.createCell((short)colMsgArr.length);
      celltip.setEncoding(HSSFCell.ENCODING_UTF_16);//设置编码
      celltip.setCellValue(tipMsg);      

      System.out.println(tipMsg);
     }
      String fileName = "fail_records.xls";
      response.reset();
      response.setCharacterEncoding("UTF-8");
      response.setContentType("application/x-download;charset=UTF-8");
      response.setHeader("Content-Disposition", "attachment;charset=UTF-8;filename=\""+ toUtf8String(fileName) + "\"");

      workbook.write(response.getOutputStream());
      response.getOutputStream().flush();
      response.getOutputStream().close();
    }
   }
  } catch (Exception e) {
   log.error("导出错误数据出错,错误信息:"+e.getMessage());
  }
    }

分享到:
评论

相关推荐

    C#利用Response流将数据库数据导出成Excel

    在上面的代码中,我们使用了Response流将数据库数据导出到Excel文件中。该代码主要实现了以下几个步骤: 1. 首先,我们设置Response流的编码为GB2312,这是中国国家标准的编码方式。 2. 其次,我们追加了Content-...

    java response 下载文件方法

    ### Java Response 下载文件方法详解 在Web应用开发过程中,经常需要实现文件的上传与下载功能。其中,通过`java response`实现文件下载是常见需求之一。本文将深入解析如何利用Java中的`HttpServletResponse`对象...

    java httpServletResponse返回流进行 下载 - 姐呵呵博客专栏 - CSDN博客1

    以下将详细讲解如何使用HttpServletResponse返回流进行文件下载。 一、设置响应类型与附件下载 在返回文件流前,我们需要设置响应头,确保浏览器知道我们正在发送一个可下载的文件。关键在于设置`Content-Type`和`...

    ASP.NET(C#) Web Api通过文件流下载文件的实例

    这个实例将详细讲解如何利用文件流来实现文件的下载功能。首先,我们要理解Web API的基本原理,它是一个用于构建RESTful服务的框架,允许通过HTTP协议来传输数据,而文件下载正好可以通过HTTP响应进行。 在本例中,...

    Web Api 通过文件流 下载文件到本地实例

    在ASP.NET Web API中,通过文件流下载文件到本地是一个常见的功能需求,它涉及到网络通信、文件处理和HTTP协议等多个方面。在这个实例中,我们将深入探讨如何实现这一过程,以及涉及的关键技术和步骤。 首先,我们...

    java 使用流下载文件

    在Web应用开发中,经常需要实现文件下载功能,比如用户可以下载系统中的报告、图片、文档等资源。使用Java流来处理文件下载是一种非常常见的技术手段。本文将详细介绍如何利用Java的流(Stream)技术实现文件的下载...

    C# 四种实现文件下载

    本文将介绍四种使用 C# 实现文件下载的方法,分别是使用 TransmitFile、WriteFile、WriteFile 分块下载和流方式下载。这些方法可以满足不同的下载需求,以下是每种方法的详细介绍: 一、TransmitFile 实现下载 ...

    输入流输出流方式的文件上传下载

    ### 输入流输出流方式的文件上传下载 在Java Web开发中,经常需要处理文件的上传与下载功能。本文将深入探讨使用输入流(`InputStream`)与输出流(`OutputStream`)来实现文件的上传与下载的技术细节。这种方式...

    JSP response对象实现文件下载的两种方式

    (2)另外一种下载文件的方法是使用文件输出流实现下载,首先通过response报头告知客户端浏览器,将接收到的信息另存 为一个文件,然后用输出流对象给客户端传输文件数据,浏览器接收数据完毕后将数据另存为文件,...

    上传下载二进制流文件

    文件下载同样基于HTTP响应,服务器通过Response对象将文件内容以二进制流的形式发送回客户端。为了实现这一功能,我们需要设置合适的HTTP头信息,如Content-Type和Content-Disposition。以下是一个简单的文件下载...

    文件流的下载和上传

    在IT行业中,文件流的下载和上传是网络应用的基础功能之一,广泛应用于各种场景,如云存储、文件共享、Web服务等。本示例聚焦于Windows Forms(WinForm)应用程序结合Web服务(Webservice)实现文件的上传和下载。...

    基于Java文件输入输出流实现文件上传下载功能

    基于Java文件输入输出流实现文件上传下载功能 本文将详细介绍基于Java文件输入输出流实现文件上传下载功能的相关知识点,包括文件上传和下载的实现原理、Java文件输入输出流的基础操作、Servlet的使用等。 文件...

    pdf下载接口,输出流文件下载

    PDF(Portable Document Format)是一种跨平台的文件格式,用于呈现文档,包括文本格式和图像,无论在哪种操作系统、硬件或软件环境中都能保持一致的显示效果。 在SpringBoot中,创建一个PDF下载接口通常涉及到以下...

    精讲RestTemplate文件上传下载与大文件流式下载.docx

    根据提供的文档标题、描述、标签以及部分内容,本文将详细介绍如何使用Spring框架中的`RestTemplate`进行文件上传、普通文件下载及大文件的流式下载。 ### 一、文件上传 在进行文件上传时,通常涉及到以下几个步骤...

    ASP是用流输出文件下载 源码

    其中一个常见的需求就是在保护原文件地址的同时,提供文件下载功能,这在很多场景下都非常有用,比如内部文档分享、敏感数据传输等。 #### 关键技术点详解 ##### ASP流输出技术 本示例代码主要通过ASP的流输出...

    通过IO流把文件传到前端并下载.zip

    我们可以通过重写`doGet`或`doPost`方法,使用`response.getOutputStream()`创建一个输出流,然后通过这个流将文件内容传送到前端。 3. **HTTP响应**: 当前端(例如浏览器)发起一个下载请求时,服务器需要构造一...

    C# WPF 下载网络文件、流到指定目录,支持选择目标目录进行存储,可实时查看文件下载进度

    使用`GetStreamAsync`方法获取文件的流,然后使用`FileStream`将数据写入本地文件。 ```csharp using (var response = await client.GetAsync(downloadUrl, HttpCompletionOption.ResponseHeadersRead)) using ...

    二进制流下载zip或单个文件(spring + angular Js).html

    二进制文件下载(spring+angularJs),正确完后曾业务需求,优化功能,实现前后端一致性,保证代码质量

    基于OkHttp3封装的Java上传下载.zip

    文件下载的流程与上传类似,但更侧重于处理响应中的流数据。关键步骤包括: 1. **创建ResponseBody的流**:当收到Response后,我们可以获取到ResponseBody,通过其`byteStream()`或`charStream()`方法获取流数据。 ...

    数据流形式下载

    在IT领域,特别是在Web开发中,“数据流形式下载”是指通过将文件作为数据流处理并发送到客户端的过程。这种方式通常用于浏览器环境中的文件下载操作,能够支持大文件传输,并且可以更好地控制下载过程。下面将详细...

Global site tag (gtag.js) - Google Analytics