【发布时间】:2013-11-12 17:06:54
【问题描述】:
在 PHP 应用程序中,我有这样的图像:
<img src="http://www.example.com/image/view/93029420" />
在后端它做这样的事情:
$query = "SELECT img_url FROM images WHERE image_id = '93029420'";
$result = DB.findOne($query);
$contents = file_get_contents($result['img_url'] );
header('Content-Type: image/png');
echo $contents;
exit();
存储在数据库中的图像 url 是一个 cdn,如亚马逊。所以它可能像 https://images.mybucket.s3.com/slippers.png 。使用这种方法或使用重定向会更好地显示图像:
$query = "SELECT img_url FROM images WHERE image_id = '93029420'";
$result = DB.findOne($query);
header('Location: ' $result['img_url'] );
exit();
现在我认为这种方法更好的唯一原因是因为它在服务器上减少了下载图像的处理。这是正确的还是不正确的,有没有更好的方法?
【问题讨论】:
-
出于安全原因和应用程序设计原因。
-
重定向效率也最好使用
HTTP/1.1 301 Moved Permanently状态,以便客户端可以缓存位置。在安全方面:S?你想保护什么?图片的路径?
标签: php image performance amazon-s3