在后端,它是这样做的:$query = "SELECT img_url FROM images WHERE image_id = '93029420'";$result = DB.findOne($query);$contents = file_get">
在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();
存储在db中的图像url指向诸如amazon的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();
现在我认为这种方法更好的唯一原因是它在服务器上发布更少的处理来下载图像。这是正确的还是错误的,有没有更好的方法?
发布于 2013-11-03 17:13:32
CDN的要点是允许并行下载;此外,一些CDN支持从地理位置最近的位置下载资产。您的方法使CDN变得无用,因为用户总是从您的服务器下载镜像,所以您只是将其用作远程文件存储。
在您当前的方法中,用户必须等待您的服务器下载映像,然后才能从您的服务器下载。通常,与用户直接从远程服务器下载相比,它会更慢(假设您的服务器与远程服务器和用户的连接速度都不是很快)
如果你想从你的服务器上下载文件,至少你可以缓存它,这样它就不会每次都被下载。
https://stackoverflow.com/questions/19727766
复制相似问题