文件名包含点时 CSV 下载功能出现问题

问题描述 投票:0回答:1

我正在 Web 应用程序中实现一项功能来下载 CSV 文件,但遇到了一个问题:当文件名包含点时,文件扩展名显示为“.bb”而不是“.csv”。这是我正在使用的代码片段:

const csvData = new Blob(  
  [[].map(row => row.join(",")).join("\n")],  
  { type: "text/csv;charset=utf-8;" }  
);  
const link = document.createElement("a");  
link.href = window.URL.createObjectURL(csvData);  
link.download = "aa.bb";  
link.click(); 

我知道我可以更改

link.download = "aa.bb.csv"
以包含正确的文件扩展名,但是还有其他解决方案可以解决此问题吗?

javascript html
1个回答
0
投票

您实际上是在要求浏览器将文件下载为

aa.bb
– 它完全按照您的要求进行操作。

“文件扩展名”只是一种约定(“文件名的最后一个点分隔的部分,如果有的话”,或多或少)——就像你不能通过重命名文件将文件从 JPEG 转换为 WAV 一样从

.jpg
.wav
,文件的内容(“CSV-ness”)不会改变。

换句话说,如果您希望浏览器保存

aa.bb.csv
的文件,请将该
download
属性设置为
"aa.bb.csv"
。为什么要有其他解决方案?

© www.soinside.com 2019 - 2024. All rights reserved.