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());
}
}
相关推荐
java response 下载文件方法。使用流下载文件。
C#利用Response流将数据库数据导出到Excel里面,代码简单明了,是适合新手使用。
摘要视图订阅分类:java_web学习第四天(request和response的学习)Java输入输出流java压缩多个文件并且返回流示例Java中IO流文件读
使用流下载文件。java response 下载文件方法。
(2)另外一种下载文件的方法是使用文件输出流实现下载,首先通过response报头告知客户端浏览器,将接收到的信息另存 为一个文件,然后用输出流对象给客户端传输文件数据,浏览器接收数据完毕后将数据另存为文件,...
文件下载 执行下列代码之后,被下载文件url,会被正确的保存到本地磁盘目录targetPath。 @Test void testDownLoad() throws IOException { // 待下载的文件地址 String url = ...
二进制文件下载(spring+angularJs),正确完后曾业务需求,优化功能,实现前后端一致性,保证代码质量
(2)另外一种下载文件的方法是使用文件输出流实现下载,首先通过response报头告知客户端浏览器,将接收到的信息另存为一个文件,然后用输出流对象给客户端传输文件数据,浏览器接收数据完毕后将数据另存为文件,...
实现的方法很简单,其中就是读取服务器的指定路径文件流,将其做为返回的HttpResponseMessage的Content。直接贴出DownloadController控件器的代码: using System; using System.Collections.Generic; using System...
VS2017下载的文件流并保存的demo, 以response输出流的形式
以ms-excel的格式Response到http流 京华志&精华志出品 分享资源 C# ASP.NET SQL DBA 源码
1、配置文件上传和下载的相关依赖:在pom.xml文件中添加以下依赖: ...4、实现文件下载功能:在文件下载的方法中,可以使用ResponseEntity作为返回类型,并设置响应头信息,将文件以流的形式写入响应体中。
3. 高性能高稳定性:依托流读写,实现高速下载,充分利用网络带宽,提高下载速度,保障下载过程稳定流畅。 4. 灵活易用:提供简洁明了的API接口,兼容各类Java项目,轻松嵌入您的现有系统,无需复杂配置,即装即用。...
环境:vs2019、.net 4.6。 WinForm窗体程序中使用CefSharp获取加载后的资源、截取request参数、拦截response数据、注入jquery文件和js代码。有问题可联系q369628105
后台返回的乱码流 解决办法: 请求方式用的是axios,主要加关键的 {responseType: ‘blob’} axios封装 export function postDownload(url, data) { return new Promise((resolve, reject) => { instance.post...
问题场景: 后端返回图片数据流,打印结果是乱码,如下: ...但是把生成的URL链入img的src后仍然显示不出来,在查资料后知道还需设置responseType为blob才行,代码如下: const QRCode = await this.$swag
使用 commons-fileupload 上传组件 结合file 实现 springmvc 方式文件上传 和serlvet方式上传 使用response输出流实现文件下载
其实这是非常不效率的方法, 最简单的方法是,我们从数据库中读取到文件后, 直接以流的形式让用户去下载. 这里我拿python flask框架来做例子,其实非常简单,步骤一共有3个 1: 取出数据, 我们默认为json文件吧 2: 在...
而在Node.js中,设置好响应头后,读取文件流,再使用“.pipe()”方法将流转接到响应对象Response就可以实现一个简单的文件下载服务器。 1. 文件下载介绍 HTTP基于请求头和响应头实现状态交互,在得到服务器正确响应...