2010-09-06 91 views
2

我需要为网站访问者提供链接,以下载原始高分辨率图像。如果我只是通过href =“image.jpg”链接到图像,浏览器将显示图像。我如何让浏览器下载它?链接下载图像,而不是视图图像

我使用亚马逊S3来服务这些图像......如果这需要在图像上设置一个特殊的标头,我相信这是可能的..但我也想显示这些图像有时。任何关于如何使用S3工作的提示都会很棒。

回答

2

你是对的。有一些标题需要做到这一点。这些将是:

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

我不知道S3如何处理这一点,但如果你想不显示这些图像,Content-Disposition头应该被排除在外。

编辑:通过<img src="some_image.png" alt="" />显示图像即使发送两个头仍继续工作。图像在我的测试中很好地显示。

+0

不幸的是,S3不允许你为不同的头文件提供相同的文件,所以我需要复制所有文件。我仍然可以让用户使用img src =“image.jpg”查看可下载的文件吗? – 2010-09-06 11:52:55

+0

我刚测试过它,它似乎工作。 – jwueller 2010-09-06 11:58:00

0

您可以使用内容处置头,让客户端下载图片:

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

好的,所以我可以在S3中添加它,并通过CloudFront将其暴露。我想问题是用户将无法查看完整的图像,没有我复制它没有该标题。如果它具有该标题,我还可以在html中内嵌图像吗? – 2010-09-06 11:51:37