Laravel 响应:返回图片流

作者: JONE 分类: 编程 发布时间: 2020-08-11 14:41

原地址:http://james.dmzfa.com/articles/zhuan-laravel-xiang-ying-fan-hui-tu-pian-liu

如果不想让用户知道图片(或其它类型的文件)的真实 URL,直接返回文件的字节流,可以使用 stream 方法。这个方法接受回调、可选的状态码和头信息数组作为参数,见下面的示例代码:

Route::get(‘/pic’, function () {
$fullPath = base_path().DIRECTORY_SEPARATOR.’pic’.DIRECTORY_SEPARATOR.’demo.jpg’;

return response()->stream(function () use ($fullPath) {
echo file_get_contents($fullPath);
}, 200, [‘Content-Type’ => ‘image/jpeg’]);
});

上面的代码在 stream 方法的回调函数中,直接输出保存在项目根目录的 pic 子目录中的 demo.jpg 的内容, 在第三个参数中设置响应标头的 Content-Type 为 image/jpeg,如果 Content-Type 设置不正确,则浏览器显示的会是乱码。

文档地址:Laravel 响应:返回图片流