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

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结合来完成:

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

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

  • 问题内容: 我正在开发一个项目,通过添加Hibernate批注来保留一些POJO。我遇到的一个问题是这样的代码失败,因为Hibernate尝试将内的子字段映射到同一列上(即,两者都试图映射到colum ,从而导致错误)。 由于会有很多出现这样在整个系统中,这将是很好,如果有一个选项来自动添加一个前缀列的名称(例如使列是,,,),而不必基于每个应用覆盖领域基础。Hibernate是否具有此功能,或者

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

  • 问题内容: 我正在尝试下载目录下的文件,而不是直接在存储桶中下载。 值区名称-“ myBucket”文件夹名称-“ myFolder”文件名-“ myFile” GetObjectInput不接受Prefix作为参数。仅指定没有前缀的存储桶名称会导致找不到密钥错误。尝试如下设置“存储桶”,但出现错误 myBucket / myFolder myBucket / myFolder / myBucke