我正在使用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它会提示名称。但显然不是。
答案 0 :(得分:1)
无法使用链接上的任何属性设置文件名。但是,如果您可以修改服务器的添加Content-Disposition标头的请求,则可以为下载的文件设置特定的文件名,而不管URL的结构如何。
具体而言,您需要设置的标题是:
Content-Disposition: attachment; filename="yourfilename.pdf"
答案 1 :(得分:0)
可悲的是,看来这是不可能的。