我正在 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"
以包含正确的文件扩展名,但是还有其他解决方案可以解决此问题吗?
您实际上是在要求浏览器将文件下载为
aa.bb
– 它完全按照您的要求进行操作。
“文件扩展名”只是一种约定(“文件名的最后一个点分隔的部分,如果有的话”,或多或少)——就像你不能通过重命名文件将文件从 JPEG 转换为 WAV 一样从
.jpg
到 .wav
,文件的内容(“CSV-ness”)不会改变。
换句话说,如果您希望浏览器保存
aa.bb.csv
的文件,请将该 download
属性设置为 "aa.bb.csv"
。为什么要有其他解决方案?