下载图像的链接而不是查看图像

3

我需要为网站访客提供下载原始高分辨率图像的链接。如果我只是用 href="image.jpg" 链接到该图片,浏览器会显示该图片。如何使浏览器下载它?

我正在使用亚马逊S3来提供这些图像...如果需要在图片上设置特殊标头,则我肯定可以做到...但有时我也想显示这些图像。有关在S3上实现此功能的任何提示都将非常棒。

2个回答

5

您说得没错。要做到这一点,需要一些请求头。以下是它们:

Content-type: image/png
Content-Disposition: attachment; filename="some_image.png"

我不确定S3是如何处理这个问题的,但如果你想显示这些图片,则应该省略Content-Disposition头部信息。 编辑:通过<img src="some_image.png" alt="" />方式显示图像,在发送两个头部信息的情况下仍然可以正常工作。在我的测试中,图像显示得很好。

不幸的是,S3不允许您使用不同的标头提供相同的文件,因此我需要复制所有文件.. 我是否仍然可以让用户使用img src="image.jpg"查看可下载文件? - at.

0

您可以使用content-disposition头来让客户端下载图像:

Content-Disposition: attachment; filename=<file name.ext>

好的,所以我可以使用S3添加它,并通过CloudFront公开它。我想问题是如果没有复制该标头,用户将无法查看完整的图像。如果图像有该标头,我仍然可以在HTML中嵌入图像吗? - at.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接