PHP 标头图像类型输出与位置重定向到 fs 中的二进制文件



我试图确定我是否应该直接

1)让PHP获取图像二进制文件并输出(标头为图像类型)图像,例如:

/* $image = ... insert curl function to fetch image */
header('Content-Type: image/png');
echo $image;

或者如果我应该有

2) 标头重定向到图像的 URL 路径

header('Location: http://domain.com/pathtoimage/image.png');

一些初始问题:

首先,这是否相当于PHP必须将图像保存在内存中才能输出它的任何开销?

其次,这是否会导致客户端上出现任何无法遵循 PHP 标头重定向的错误?

我反对标头 -> 位置解决方案,因为您将向服务器添加额外的请求。请尝试以下解决方案:

if (file_exists($file)) {
        header('Content-Type: image/png');
        readfile($file);
        exit;
    }

此解决方案应具有最小的开销和内存占用。

最新更新