将标头插入数据URI?

时间:2012-12-22 19:30:07

标签: javascript download

我正在尝试使用.csv扩展名下载的JavaScript动态创建数据,但无法将文件名与下载相关联。这是一段代码:

var data = '1,2,3';
window.location = 
    "data:application/csv;charset=UTF-8;content-disposition:attachment;filename=export.csv," 
    + encodeURIComponent(data);

此下载,但文件名是通用的,没有.csv扩展名。

我可以使用以下PHP代码执行此服务器端:

<?php
   header('Content-type: text/csv');
   header('Content-disposition: attachment;filename=export.csv');
   echo "1,2,3";
?>

此外,如果我背对着墙,我可以修改我的Javascript以将Ajax发送到服务器并获得回报,但我更喜欢纯Javascript解决方案。是否有独立于浏览器的无Flash方式?

修改

有人指出这个问题可能是重复的。我做了goo-diligence并检查了以前的SO文章。我仍在问这个,因为自那些问题已经过了一段时间,所以我希望:

  1. 浏览器功能可能有所改变。
  2. 较旧的浏览器不太受限制,因此某些解决方案现在可能比之前提出的问题更具可行性。
  3. 此外,如果它使问题更加突出,我特别要求将一种内容标题插入到数据URI中(根据主题),这是对其他问题的一种扭曲。

    提前致谢。

0 个答案:

没有答案