【转】Laravel 响应:返回图片流

  • James
  • 10个月前
  • 311 次阅读
  • 更新于 23小时前
laravel  

问题:


我不想让用户知道图片的真实 URL,那么如何在响应中返回图片流,即返回的不是一个浏览器可直接下载的图片文件 URL,而是图片的字节流?


回答


如果不想让用户知道图片(或其它类型的文件)的真实 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-Typeimage/jpeg,如果 Content-Type 设置不正确,则浏览器显示的会是乱码。

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


   本站文章除注明转载/出处外,均为本站原创或翻译。若要转载但请务必注明出处,尊重他人劳动成果。    本文链接: http://james.dmzfa.com/articles/zhuan-laravel-xiang-ying-fan-hui-tu-pian-liu

上一篇:【转】谷歌浏览器安装json格式化插件

下一篇:PHP 的 new static 和 new self 具体有什么...

文章评论 (0)发表评论

Top