当前位置: 首页 > 知识库问答 >
问题:

javascript - vue 下载文件流怎么保留原文件名?

庄子平
2023-07-06

vue 下载文件流怎么保留原文件名?

this.$axios.get(${url}/${fileName}`, {
  responseType: "blob",
 }).then((response) => {
   //new Blob([res])中不加data就会返回下图中[objece objece]内容(少取一层)
   const blob = new Blob([response.data]); 
   const elink = document.createElement('a');
    // 怎么保留获取原文件名?
   elink.download = '文件名.xlsx';

   elink.style.display = 'none';
   elink.href = URL.createObjectURL(blob);
   document.body.appendChild(elink);
   elink.click();
   URL.revokeObjectURL(elink.href); // 释放URL 对象
   document.body.removeChild(elink);
 }).catch((error) => {
   this.$message({
     message: error
   });
 });

elink.download 怎么获取原文件名

共有1个答案

高砚
2023-07-06

服务器返回的信息头 headers['content-disposition'] 里面就有文件名filename(需要服务端有返回 content-disposition 信息,如果没有返回则获取不到)。但是获取到的 filename 时转码过的,所以需要通过 decodeURIComponent() 函数解码回来。

当然,如果你是想使用你下载时候请求的文件名,可以直接使用你请求URL上面的 fileName 变量就行了。

this.$axios.get(`${url}/${fileName}`, ...)
 类似资料:
  • 我想下载一个文件,同时保留文件的文件名。 我有: 我可以下载文件,但我下载的文件名总是“downloadFile”。pdf或下载文件。巴布亚新几内亚'。 如何保留原始文件名?谢谢

  • 在我的项目中,我正在上传一个文件。上传时,我将其原始文件名和扩展名保存在数据库中,并将该文件与一些一起保存在服务器上,生成的GUID也与文件名和扩展名一起存储在数据库中。 比如-- -用于上载的文件名为Questions.docx -则orignalFileName将为“问题” -文件扩展名将为“.docx” -上传文件,文件名为“0C1B96D3-AF54-40D1-814D-B863B7528

  • 本文向大家介绍怎么下载一个zip文件?相关面试题,主要包含被问及怎么下载一个zip文件?时的应答技巧和注意事项,需要的朋友参考一下 a标签加属性 文件流的方式 注意:Bolb的方式构建完 blob 对象后才会转换成文件,所以尽量使用a标签的形式进行下载

  • 我正试图从以下链接下载所需的文件 后来,我也尝试使用cookie并运行代码,但没有成功。保存后的cookie文件没有数据。 我需要把上面的下载放在cronjob上,这样它就可以把文件保存到服务器上,然后我就可以完成剩下的处理了

  • 我的应用程序使用Google云存储来存储大文件,并使用Spring Boot作为后端。 我刚刚完成了负责下载的控制器的实现,遵循我认为可能是正确的方法,但是我从浏览器中得到的行为并不是我所期望的。 步骤 如果我尝试下载文件,将发生以下情况: 使用ReadChannel从google云存储读取文件(blob) 将通道写入ByteArrayOutputStream; 通道使用缓冲区写入 字节数组输出流

  • 1.手机版 1)对话中下载、转发:长按对话中的文件/图片-转发/下载   2)文件库里下载、转发:我-文件-找到要操作的文件/图片-转发/下载   2.电脑版 1)对话中下载、转发:对话中的文件/图片-下载/转发   下载后的文件可以点击打开或打开文件夹 2)文件库里下载、转发:上方文件按钮-找到要操作的文件/图片-下载/转发