【问题标题】:how to specify csv file name for downloading in window.location.href如何在 window.location.href 中指定用于下载的 csv 文件名
【发布时间】:2015-10-16 23:09:11
【问题描述】:

我正在使用 javascript 将数据导出到 csv。 由于某种原因,我不允许使用传统的 <a download="filename.csv" /a> 设置文件名。

我有以下代码行:

window.location.href = "data:text/csv;base64," + csvdata

我可以在哪里以及如何插入和指定文件名和扩展名以使其工作?

【问题讨论】:

标签: javascript angularjs csv encoding


【解决方案1】:

这是不可能的,尝试模仿<a href=..,像这样点击它:

        var csvdata = "Hello World"; //  only for test
        var byteNumbers = new Uint8Array(csvdata.length);

		for (var i = 0; i < csvdata.length; i++)
		{
			byteNumbers[i] = csvdata.charCodeAt(i);
		}
		var blob = new Blob([byteNumbers], {type: "text/csv"});
   
        // Construct the uri
		var uri = URL.createObjectURL(blob);

		// Construct the <a> element
		var link = document.createElement("a");
		link.download = 'myfile.csv';
		link.href = uri;

		document.body.appendChild(link);
		link.click();

		// Cleanup the DOM
		document.body.removeChild(link);
		delete link;

【讨论】:

  • 其他方式绝对不可能吗? php 可以指定标题,我想知道那里是否有任何 javascript 等价物。
  • 有。但不适用于 window.location 属性。这为浏览器提供了一个新 URL,它期望标头来自该 URL 服务器端 - 标头的性质。
猜你喜欢
  • 1970-01-01
  • 2014-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-11
相关资源
最近更新 更多