首页 > 其他分享 >使用EasyExcel下载文件时,前端获取不到后端返回的文件名,无法下载到本地

使用EasyExcel下载文件时,前端获取不到后端返回的文件名,无法下载到本地

时间:2023-09-08 12:25:06浏览次数:39  
标签:文件名 EasyExcel fileName Content 前端 Disposition response 下载

【问题描述】

使用EasyExcel下载文件时,前端获取不到后端返回的文件名,无法下载到本地

 

【原因分析】

实际上文件的流后端已经返回了,只是缺少了Content-Disposition属性返回,前端无法获取到文件名;

private static OutputStream getOutputStream(String fileName, HttpServletResponse response) throws Exception {
fileName = URLEncoder.encode(fileName, "UTF-8");
response.setContentType("application/vnd.ms-excel; charset=utf-8");
response.setCharacterEncoding("utf-8");
response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx");
return response.getOutputStream();
}

 

【解决方案】

需要增加下面这行,后端才能够返回文件名称给前端,前端才可以下载:

response.addHeader("Access-Control-Expose-Headers", "Content-Disposition");

private static OutputStream getOutputStream(String fileName, HttpServletResponse response) throws Exception {

  fileName = URLEncoder.encode(fileName, "UTF-8");
  response.setContentType("application/vnd.ms-excel; charset=utf-8");
  response.setCharacterEncoding("utf-8");
  response.addHeader("Access-Control-Expose-Headers", "Content-Disposition");
  response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx");
  return response.getOutputStream();
}

标签:文件名,EasyExcel,fileName,Content,前端,Disposition,response,下载
From: https://www.cnblogs.com/heyi-77/p/17687244.html

相关文章

  • macOS Ventura 13.5.2 (22G91) Boot ISO 原版可引导镜像下载 (修复零日漏洞)
    macOSVentura13.5.2(22G91)BootISO原版可引导镜像下载(修复零日漏洞)2023年9月7日(北京时间8日凌晨)macOSVentura13.5.2(22G91)发布,此次为安全更新,主要修复了零日漏洞CVE-2023-41064CVE-2023-41061。这些漏洞修复的更新也包含在同日发布的iOS16.6.1、iPadOS......
  • macOS Ventura 13.5.2 (22G91) 正式版发布,修复零日漏洞 (ISO、IPSW、PKG 下载)
    macOSVentura13.5.2(22G91)正式版发布,修复零日漏洞(ISO、IPSW、PKG下载)2023年9月7日(北京时间8日凌晨)macOSVentura13.5.2(22G91)发布,此次为安全更新,主要修复了零日漏洞CVE-2023-41064CVE-2023-41061。这些漏洞修复的更新也包含在同日发布的iOS16.6.1、iPadO......
  • 安装docker 镜像之后 进入镜像下载报错
    在学习使用docker技术过程中,基于centos镜像自定义新的镜像,其中基础镜像centos需要提前安装好vim和net-tools,然而在刚开始通过yum-yinstallvim安装vim时,便出现了错误提示信息:Error:Failedtodownloadmetadataforrepo'appstream':Cannotprepareinternalm......
  • blob流下载
    download(data,name,type){constb=newBlob([data])//拿到文件流下载对象,有的定义不需要.data,根据后端返回字段定consturl=window.URL.createObjectURL(b)//生成文件流下载链接consta=document.createElement('a')//创建一个a标签用来跳转a.hre......
  • uniapp项目实践总结(十二)封装通用请求上传以及下载方法
    导语:在日常开发过程中,前端经常要和后端进行接口联调,获取并且渲染数据到页面中,接下来就总结一下uniapp中获取请求、文件下载和上传的一些方法。目录原理分析方法实现实战演练案例展示原理分析主要是使用uni.request方法来发送请求,uni.downloadFile方法来下载文件,uni.u......
  • 统信UOS1060使用UDOM工具箱打开支持长文件名特性
    原文链接:统信UOS1060使用UDOM工具箱打开支持长文件名特性hello,大家好啊,今天给大家带来一篇文章,在统信UOS发布的最新版桌面操作系统1060中,增加了长文件名模式,最长支持255个中文或英文字符,这样对于在windows上使用长文件的文件,迁移到国产操作系统上而言,避免了文件命名失败、文件丢失......
  • Rust项目使用Dockerfile构建镜像 访问crates.io下载速度慢解决
    在$CARGO_HOME/config文件添加国内的镜像源下面的镜像源来自:https://rsproxy.cn/FROMrust:1.72asbuilderWORKDIR/usr/srcCOPY..RUNecho"[source.crates-io]\n\replace-with='rsproxy-sparse'\n\[source.rsproxy]\n\registry=\"https://rs......
  • 百度上传下载组件视频
    ​ IE的自带下载功能中没有断点续传功能,要实现断点续传功能,需要用到HTTP协议中鲜为人知的几个响应头和请求头。 一. 两个必要响应头Accept-Ranges、ETag        客户端每次提交下载请求时,服务端都要添加这两个响应头,以保证客户端和服务端将此下载识别为可以断点续......
  • 宝塔历史版本离线包下载(附详细教程)
    宝塔历史版本下载(github中存在1.0.3-7.9.10符合大多数人使用的版本,部分版本如下):https://github.com/weiwang3056/baota_release/blob/main/LinuxPanel/LinuxPanel-7.5.1.ziphttps://github.com/weiwang3056/baota_release/blob/main/LinuxPanel/LinuxPanel-7.5.2.ziphttps://gi......
  • [EasyExcel] 导出合并单元格
    前言使用springboot对excel进行操作在平时项目中要经常使用。常见通过jxl和poi的方式进行操作。但他们都存在一个严重的问题就是非常的耗内存。这里介绍一种EasyExcel工具来对excel进行操作。一、EasyExcel是什么?EasyExcel是阿里巴巴开源的一个excel处理框架,以使用......