我目前有这段代码:
function download(filename, text) {
var pom = document.createElement('a');
pom.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
pom.setAttribute('download', filename);
pom.click();
}
download('test.html', string);
string
包含许多以.html文件编写的html代码
上面的代码完美地运行:
在按钮上单击,浏览器(chrome)会自动下载带有写入其中的字符串内容的html文件。
现在,我要做的是,不是自动下载Chrome文件,而是打开“另存为”对话框并询问用户文件的位置和名称,然后将其下载到该位置。
非常感谢快速简单的回复。
答案 0 :(得分:4)
我的浏览器设置为自动下载默认位置的所有文件,这就是为什么不是这个文件,而是浏览器中的所有其他文件都直接下载而没有保存提示对话框。将浏览器中的设置更改为“始终询问下载位置”。
答案 1 :(得分:2)
执行此操作的唯一方法是在服务器上设置文件的标题,如下所示:
<FilesMatch "\.(?i:pdf)$">
ForceType application/octet-stream
Header set Content-Disposition attachment
</FilesMatch>
下载属性不允许您更改文件名或文件类型,因为它存在明显的安全风险。
你要做的是复制右键单击 - 另存为对话,但我担心此时不可能。