我需要为网站访问者提供链接,以下载原始高分辨率图像。如果我只是通过href =“image.jpg”链接到图像,浏览器将显示图像。我如何让浏览器下载它?链接下载图像,而不是视图图像
我使用亚马逊S3来服务这些图像......如果这需要在图像上设置一个特殊的标头,我相信这是可能的..但我也想显示这些图像有时。任何关于如何使用S3工作的提示都会很棒。
我需要为网站访问者提供链接,以下载原始高分辨率图像。如果我只是通过href =“image.jpg”链接到图像,浏览器将显示图像。我如何让浏览器下载它?链接下载图像,而不是视图图像
我使用亚马逊S3来服务这些图像......如果这需要在图像上设置一个特殊的标头,我相信这是可能的..但我也想显示这些图像有时。任何关于如何使用S3工作的提示都会很棒。
你是对的。有一些标题需要做到这一点。这些将是:
Content-type: image/png
Content-Disposition: attachment; filename="some_image.png"
我不知道S3如何处理这一点,但如果你想不显示这些图像,Content-Disposition
头应该被排除在外。
编辑:通过<img src="some_image.png" alt="" />
显示图像即使发送两个头仍继续工作。图像在我的测试中很好地显示。
您可以使用内容处置头,让客户端下载图片:
Content-Disposition: attachment; filename=<file name.ext>
好的,所以我可以在S3中添加它,并通过CloudFront将其暴露。我想问题是用户将无法查看完整的图像,没有我复制它没有该标题。如果它具有该标题,我还可以在html中内嵌图像吗? – 2010-09-06 11:51:37
不幸的是,S3不允许你为不同的头文件提供相同的文件,所以我需要复制所有文件。我仍然可以让用户使用img src =“image.jpg”查看可下载的文件吗? – 2010-09-06 11:52:55
我刚测试过它,它似乎工作。 – jwueller 2010-09-06 11:58:00