您的位置:首页 > 编程语言

###下载文件总是提示action文件【一定是response响应头设置无效(代码没执行)或者没设置】【response写会浏览器必须放在最后一句,保证响应头设置执行】

2017-11-13 16:29 681 查看
===============response向浏览器响应数据,无论是提示信息“操作成功”,还是文件下载。出现:

提示下载action文件。

===都遇到过。

===原因:【一定是response响应头设置无效(代码没执行)或者没设置】。前者很难找。

===【response写会浏览器必须放在最后一句,保证响应头设置执行】

@Action("SubAreaAction_exportXls")
public void exportXls() throws IOException{
ServletOutputStream outputStream = null;
HttpServletResponse response = ServletActionContext.getResponse();
try {
outputStream = response.getOutputStream();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

// 一个流
// 两个头
// mime类型 Excel application/vnd.ms-excel
// 打开方式 默认是浏览器直接打开;=== inline 浏览器中打开;==== attachment 文件下载
//response.setContentType("application/vnd.ms-excel");//==######=下载。action文件。
String fileName="分区导出的数据.xls";
//====下两行解决文件名乱码
String agent = ServletActionContext.getRequest().getHeader("User-Agent");
fileName = FileUtils.encodeDownloadFilename(fileName, agent);

response.setHeader("content-disposition", "attachment;filename="+fileName);
//===下载。action文件。==######=下载。错误原因:setHeader()放在了导出 后面。header设置没执行。。。
//===【总之遇到这种问题,就是response的 header的问题。====代码顺序颠倒。。。。难找。】
service.exportXls(outputStream);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐