ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

【导出】前端 js 导出下载文件时,文件名前后带下划线问题

【导出】前端 js 导出下载文件时,文件名前后带下划线问题

目录

  • 导出/下载文件操作
  • 问题
  • 原因
  • 解决
  • 解决后下载文件

导出/下载文件操作

  • 主要实现是接口返回文件流(包括文件名),前端处理下载文件
  • 参考这里方法1的代码 https://blog.csdn.net/m0_53562074/article/details/127364159

问题

导出文件

原因

后端接口返回的文件名解析出来带有引号,导致 a 标签中 download 属性值有双引号,从而导致文件名前后带有下划线

解决

在使用 a 标签下载文件时,将文件名中的引号去掉

/** * 将二进制的数据导出为 excel * @param {string} data 数据 * @param contentType * @param {string} fileName 文件名称 */exportfunctionexportResponseData(data,contentType,fileName){constdownloadLink=window.document.createElement('a')downloadLink.href=window.URL.createObjectURL(newBlob([data],{type:contentType}))// downloadLink.download = fileNamedownloadLink.download=fileName.replace(/'"|"/g,'')// 【主要代码】去掉文件名中的引号document.body.appendChild(downloadLink)downloadLink.click()document.body.removeChild(downloadLink)}

解决后下载文件

文件名正常

返回列表