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

javascript - 如何解决前端下载zip文件时自动添加_后缀的问题?

弓华茂
2024-01-30

前端a标签下载.zip文件下载下来的文件加了_后缀怎么回事怎么解决?

export function downloadFile(data: any, fileName: string): void {  const blob = data instanceof Blob ? data : new Blob([data]);  console.log('blob', blob); // type: text/xml  const url = window.URL.createObjectURL(blob);  const link = document.createElement('a');  link.href = url;  console.log('fileName', fileName); // 取的content-disposition的文件名 xxxx.zip  link.download = fileName;  link.style.display = 'none';  document.body.appendChild(link);  link.click();  document.body.removeChild(link);  window.URL.revokeObjectURL(url);}// 下载的文件会带_ 变成_xxxx.zip_

共有2个答案

葛炯
2024-01-30

昨天刚好处理过了,网上有查到解决方法
前端js下载文件时后缀名多出一个下划线

如果可以的话,可以先在网上寻找解决方法,未找到再提问

link.download = fileName.replace(/"/g, '')
郎飞龙
2024-01-30

你的问题描述中,似乎是在尝试下载一个 .zip 文件时,文件名自动添加了一个 _ 后缀。这可能是因为你在设置 a 标签的 download 属性时,文件名中包含了某些特殊字符或者格式。

首先,你需要确保你的文件名是符合URL编码的。有些特殊字符,如空格、斜杠(/)、点(.)、冒号(:)等,在URL中可能被解释为特殊含义,所以最好进行URL编码。

你可以使用 encodeURIComponent 函数来对文件名进行编码:

const fileName = encodeURIComponent(fileName);link.download = fileName;

这样应该可以解决你的问题。如果问题仍然存在,那可能是其他原因导致的,你可能需要提供更多信息来进行调试。

 类似资料:
  • 问题内容: 我想为每个列名添加后缀,如下所示: 我该怎么做呢?另外,如果要添加后缀,解决方案将如何更改? 问题答案: 您可以使用一种理解: 也有内置方法,如和在另一个答案中提到的。

  • 问题内容: 我有以下代码: 它不起作用。我给了两个按钮,如果按下第一个,则应该加载。如果第二个被按下,则应加载。 我怎样才能做到这一点? 问题答案: 您不能以这种方式将HTML嵌入Javascript。基本上,您想要的是嵌入一个脚本元素,单击按钮时指向某个javascript文件。可以通过将事件与DOM结合来完成:

  • 设置mapbox瓦片的url时,想通过代理获取,但是有的时候能自动添加localhost前缀然后走代理成功,但很多时候不能,也没有改代码,就会有不同结果,请问是什么原因导致的? 失败的时候报错:Failed to construct 'Request': Failed to parse URL from /api/mvt?…… 成功的时候

  • 我有我的网站在和我想下载一些文件从另一个域但没有得到下载和显示302移动临时错误。我使用cURL代码。

  • 我已经试着让psr-4自动加载工作一个多星期了,但没有成功。 我的文件结构如下: 我创建了psr-4自动加载功能,如下所示: 在使用作曲家转储-自动加载-0后,在我的session.php类中,我给出了命名空间: 然后我需要自动加载器,并使用use函数将会话类命名如下: 打开index.php页面后,我得到一个 致命错误:在第10行的/var/www/test/Project/index.php中

  • 执行完setMapStyleV2之后会有文字堆叠的情况 ,就算是使用空Json也会有这种情况 有解决方法吗