我可以使用HTML“下载”属性提示下载文件名吗?

时间:2016-09-06 16:13:14

标签: javascript html download

我正在使用download属性指定一个文件名,以便使用下面的代码将数据下载为.csv文件

  $(this).attr({
    'download': fileName,
    'href': csvData,
    'target': '_blank'
  });

这完全有效,除了文件名基于从中检索数据的URL,因此它可能变得非常冗长和复杂。

是否可以使用文件名“提示”用户 - IOW,当他们点击下载链接时,Windows资源管理器(或等效操作系统)会显示“另存为”提示,其中fileName为违约价值?

FWIW,我尝试在fileName开头使用'无效'字符,如问号,但无济于事。我还尝试了target属性的其他值,但也没有骰子。

显然我可以在我的代码中添加一个提示来显示文件名,然后允许用户在那里指定名称,但是如果有明显的东西我就错过了......

修改

例如,要说清楚,这是一个示例网页,其中包含两个<A>图片链接 - 一个显示图片,另一个下载图片:

<html>
<head>
</head>
<body>
<a href="http://www.userlogos.org/files/logos/pek/stackoverflow.png">Link to image</a>
<br>
<a href="http://www.userlogos.org/files/logos/pek/stackoverflow.png" download="stackoverflow.png">Download image</a>
</body>
</html>

第二个直接下载图像,如“stackoverflow.png”。我希望能够调出另存为对话框,如果可能的话,用户可以选择保存图像的名称。就像我右键单击图像并选择“将图像另存为...”一样。我意识到这可能是不可能的,因为这确实发生在浏览器和操作系统之间的那个实例中,但我希望如果,例如,我指定download=?stackoverflow.png"然后MAYBE它会提示名称。但显然不是。

2 个答案:

答案 0 :(得分:1)

无法使用链接上的任何属性设置文件名。但是,如果您可以修改服务器的添加Content-Disposition标头的请求,则可以为下载的文件设置特定的文件名,而不管URL的结构如何。

具体而言,您需要设置的标题是:

Content-Disposition: attachment; filename="yourfilename.pdf"

答案 1 :(得分:0)

可悲的是,看来这是不可能的。