代码必须下载文件,但是会打开文件。我在做什么错了?
<html>
<body>
<p>Click on the Image to download the image:<p>
<a href="/website/image1.jpg" download>
<img src="/website/image1.jpg" alt="Image" width="104" height="142">
</a>
</body>
</html>
上面的代码打开文件但不下载。
答案 0 :(得分:1)
尝试添加
<!DOCTYPE html>
位于文件顶部,用于让浏览器知道您正在使用HTML5。
答案 1 :(得分:0)
浏览器并不完全支持download
属性,请查看https://caniuse.com/#feat=download。
要确保浏览器将为用户提供保存文件的功能,而不是在浏览器窗口中打开文件,则应从服务器提供内容类型设置为application/octet-stream
的图像。
设置标头的正确方法取决于您使用的后端技术堆栈。
最简单的方法可能是在Web服务器层检查请求,然后添加标头。例如,nginx的配置可能是这样的:
location ~* .\?download$ {
add_header Content-Type application/octet-stream;
}
这应该照常在浏览器中打开image.jpg
,但是image.jpg?download
应该向用户提供保存它的权限。
应该检查配置文件的语法,我不确定非常。
答案 2 :(得分:0)
此属性仅适用于同源网址。
如果/当您开始将其托管在Web服务器上时,它将开始工作。如果您只是自己在计算机上执行此操作,请查看Windows版WAMP或macOS版MAMP,以开始使用Apache。 research link
关于这个问题的简单解决方案。您只需要将html文件放入服务器即可。
答案 3 :(得分:-2)
代码对我来说看起来不错。 但是,请注意,Edge版本12,IE,Safari 10(或更早版本)或Opera版本12(或更早版本)不支持下载属性。
编辑:也许是因为缺少HTML文档的声明。