gpt4 book ai didi

显示图像的 PHP 脚本很慢

转载 作者:行者123 更新时间:2023-12-02 07:42:01 27 4
gpt4 key购买 nike

所以我有一个需要登录才能查看的网站,其中有一个照片库。为了保护这些照片,我将它们移到了网络根目录之外,并使用 php 脚本来显示它们。像这样。

照片库.php

echo '<img src="photo.php?id=X"/>';

照片.php

$id = (int)$_GET['id'];

$photo = getPhotoDataFromDb($id);
$path = DIRECTORY.basename($photo['filename']);

// Make sure photo file exists
if (!file_exists($path) || !is_file($path))
{
logError(__FILE__.' ['.__LINE__.'] No photo found in directory ['.$path.'] for photo id ['.$id.'].');
header('HTTP/1.0 404 Not Found');
return;
}

$info = getimagesize($path);

header("Cache-control: public, no-cache;");
header("Content-type: ".$info['mime']);

readfile($path);

一切正常,只是这比仅从 Web 根目录中的目录正常显示照片慢 67 倍。

那么,我的问题是:

  1. 我的代码有问题吗,还是这种方法总是会增加更多时间?
  2. 我怎样才能加快速度?有没有安全的方法来缓存图像?我相信画廊 2 以某种方式做到了这一点。

最佳答案

  1. 是的,您的方法会增加时间,通过让图像在循环之外,您强制 PHP 将每个图像缓冲到内存中,然后将其发送给用户,从而增加服务器上的负载并为 LARGE 创建明显的延迟图片(假设画廊在这里)。

  2. 您可以通过将图像放在网站/应用程序的根目录中来加快速度。要保护您的图像免受远程盗链,只需使用 htaccess 脚本(谷歌搜索)。您还可以创建 htaccess 和登录权限的组合,以防止未经批准的用户访问包含图像的文件夹。

引用资料:

关于显示图像的 PHP 脚本很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10124276/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com