强制<a download />下载图像而不是打开图像的URL链接

gni*_*rus 9 html5

<a download='file' href="https://tinyjpg.com/images/social/website.jpg">
  Download
</a>
Run Code Online (Sandbox Code Playgroud)

有没有办法强制下载文件而不是在新窗口中打开文件?现在,如果文件是一个URL,就像下面的例子一样,它将不会被下载,并将在一个新窗口中打开.

谢谢

Pet*_*r B 16

您可能会被Firefox和Chrome 65+仅支持同源下载链接这一事实所困扰,这可能是一种安全措施.

来源:https://caniuse.com/#feat=download(参见"已知问题"标签)

Web超文本应用技术工作组(WHATWG)还建议在跨源方案(如您的示例中)中,托管相关图像/文件的Web服务器需要发送Content-DispositionHTTP标头download=以供遵守.

资料来源:https://html.spec.whatwg.org/multipage/links.html#downloading-resources


简而言之:

如果出现以下情况,您只能用于<a download='...'></a>强制下载图像/文件:

  1. 托管图像/文件的服务器也说应该下载,
    或者
  2. 图像/文件来自同一个域.

  • 感谢您的回答@peter!我们的后端将文件托管在S3上,是否存在“ Content-Disposition”的设置以允许下载,或者可以在我们的API中定义它? (3认同)