繁体   English   中英

PHP这是一种更好的方式来提供其URL存储在数据库中的图像

[英]PHP Which is a better way to serve an image whose URL is stored in a database

在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是cdn,例如amazon。 所以它可能像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();

现在我认为这种方法更好的唯一原因是因为它减少了在服务器上处理下载图像的过程。 这是正确的还是不正确的,是否有更好的方法?

CDN的重点是允许并行下载; 还有一些CDN可以从地理上最近的位置下载资产。 您的方法使CDN无用,因为用户始终从您的服务器下载映像,因此您只是将其用作远程文件存储。

在您当前的方法中,用户必须等待服务器下载映像,然后从服务器下载。 通常,与直接从远程服务器下载的用户相比,它会更慢(假设您的服务器与远程服务器和用户的连接速度都不快)

如果您希望从服务器下载文件,至少可以缓存它,因此每次都不会下载。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM