如何强制“另存为”对话框?
有没有办法强制“另存为”对话框?
目前,如果您点击链接,您将在浏览器中看到内容,但我需要出现“另存为”对话框。 该文件位于外部服务器上。
我已经尝试过:
$("#download_link").click(function() { document.execCommand('SaveAs','1','location'); });
不幸的是,这不起作用。
编辑:
当然,如果用户在浏览器中激活了此选项,则可以下载该文件。 我只是不希望他被重定向到该网站。
如果有一种方法可以用PHP执行此操作也没关系,但看起来我需要使用readfile(),由于流量我不想要它。
我需要一个适用于外部服务器上的文件的解决方案!
评论,指出一些事情:
对不起,我需要问你,但你认真吗? 我刚刚问我如何强制保存为对话框,你想出“非法”,“混淆”等? 我多次提到它,我想要这样做的唯一原因是避免直接在浏览器中播放所需的文件。 这不是非法的,不是我要隐藏的东西。 我也不知道为什么这个问题被标记为偏离主题。
使用HTML5,您只需使用下载属性即可。
如果文件在浏览器中显示为文本或作为文件下载,则取决于随文件一起发送的标头。 例如,这是excelfile的标头:
header("Content-Type: application/vnd.ms-excel"); header("Content-Disposition: attachment; filename=\"myfilename.xlsx\""); header("Cache-Control: max-age=0");
(Excelfile是用php生成的,没有这个标题我会在浏览器中看到文件中的漏洞文件)
重要的是Content-Type。
编辑:没有readfile()
正如你在问题中所说,你不想使用PHP的readfile(),你也可以用htaccess设置头文件。
ForceType application/octet-stream
application / octet-stream =二进制文件(所以它总是被下载)。 您必须重写FilesMatch才能匹配您的文件