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

ina*_*ina 5 php filesystems curl image header

我想确定我是否应该直接

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

/* $image = ... insert curl function to fetch image */

header('Content-Type: image/png');

echo $image;
Run Code Online (Sandbox Code Playgroud)

或者如果我应该

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

header('Location: http://domain.com/pathtoimage/image.png');
Run Code Online (Sandbox Code Playgroud)

一些初步问题:

在第一个中,这是否会导致PHP必须将映像存储在内存中才能输出?

在第二个,这会导致客户端上的任何错误,以某种方式不能遵循PHP标头重定向?

Ale*_*ekc 0

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

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

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