首页 > 解决方案 > Laravel 图像服务返回空白

问题描述

我用控制器为我的图像提供服务,它曾经可以工作。我不确定我是否错误地损坏了代码,是否是升级(我刚刚升级到版本 5.8,但我感觉升级后图像可以工作一段时间)或者它是否可能与 Apache 相关。我发现这个这个帖子指出在 PHP 标记之前有一个空格或制表符。但是我已经尝试了所有方法来删除(如果存在)这些字符,但仍然无法正常工作。我的控制器方法是这样的:

public function getPicture($picture){
    $path = Storage::disk('main')->getDriver()->getAdapter()->getPathPrefix().$picture;

    $file = File::get($path);
    $type = File::mimeType($path);

    $response = Response::make($file, 200);
    return $response->header("Content-type", $type);
}

我得到的只是一个空白的正方形...... =(

标签: phplaravel

解决方案


在返回控制器之前清理输出缓冲区。我也喜欢使用 Laravel 的辅助函数。所以代码会是这样的:

public function getPicture($picture){
    $path = Storage::disk('main')->getDriver()->getAdapter()->getPathPrefix().$picture;

    ob_end_clean();
    return response()->file($path);
}

推荐阅读