使用 Google chrome 下载/打开 .csv 文件,它将 .csv 文件的扩展名更改为 .xls
Posted
技术标签:
【中文标题】使用 Google chrome 下载/打开 .csv 文件,它将 .csv 文件的扩展名更改为 .xls【英文标题】:Downloading/Opening .csv file using Google chrome, it changes extension of .csv file to .xls 【发布时间】:2019-11-07 18:00:34 【问题描述】:我的 html 文件中有一个 a
标记,它指向一个 .csv
文件。每次我单击链接时,它都会以.xls
扩展名下载相同的文件。为什么?
我尝试了以下方法:
<a href="./example.csv" target="_blank">File download</a>
<a href="./example.csv" download>File download</a>
<a href="./example.csv" type="text/comma-separated-values">File download</a>
<a href="./example.csv" type="text/csv">File download</a>
我尝试使用file:///myfolder/example.csv
协议打开文件,但所有这些都具有相同的结果。
而在 Firefox、IE、Edge 中,这会下载 .csv
扩展名中的文件。
如何让 chrome 下载 .csv
扩展名中的 .csv
文件?
【问题讨论】:
看起来像一个 Chrome 错误。我可以通过将任何本地 .csv 文件的路径复制粘贴到地址栏中来可靠地复制它,并将其下载为 .xls 我也遇到了这个问题 我在普通窗口中遇到了同样的问题。但我可以在无缝窗口中下载具有正确扩展名的文件。不确定是否有任何插件影响其行为。 我试图解决这个问题,但没有成功。为 chrome bugs.chromium.org/p/chromium/issues/detail?id=1074202 打开了一个 bug 在我的情况下,.csv 以 .txt 格式下载,而在 Edge 中也无法正常工作,因此情况可能不同,但对我来说,在下载属性中指定文件名时,在本例:文件下载 【参考方案1】:在 Windows 10 机器上 Google Chrome 本地下载了带有 .xls 扩展名的 .csv 文件。但是当我将同一个项目上传到 GitHub Pages 时,Google Chrome 开始下载具有正确 .csv 扩展名的文件。
所以解决方案要么在网络服务器设置中,要么只是在本地环境之外进行测试。
【讨论】:
【参考方案2】:我没有找到任何解决方案,所以我做了一个解决方法:
if (fileType === 'text/csv')
FileSaver.saveAs(newBlob, `$data.csv`);
else
FileSaver.saveAs(newBlob, `$data`);
这对我有用,如果您发现浏览器对任何其他文件产生同样的问题并且该文件不是 csv,请尝试像这样实现它,它也可以工作。
【讨论】:
什么是FileSaver
?以上是关于使用 Google chrome 下载/打开 .csv 文件,它将 .csv 文件的扩展名更改为 .xls的主要内容,如果未能解决你的问题,请参考以下文章
如何使用WebDriver C从Google Chrome模拟器打开设备#
使用 Google chrome 下载/打开 .csv 文件,它将 .csv 文件的扩展名更改为 .xls