为什么下载链接会打开图像

时间:2019-04-01 08:48:48

标签: javascript html

代码必须下载文件,但是会打开文件。我在做什么错了?

<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>

上面的代码打开文件但不下载。

4 个答案:

答案 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文档的声明。