php - 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);
}
我得到的只是一个空白的正方形...... =(
解决方案
在返回控制器之前清理输出缓冲区。我也喜欢使用 Laravel 的辅助函数。所以代码会是这样的:
public function getPicture($picture){
$path = Storage::disk('main')->getDriver()->getAdapter()->getPathPrefix().$picture;
ob_end_clean();
return response()->file($path);
}
推荐阅读
- android - 我正在尝试使用Google Places屏幕上选择的地址在选择地址时在地图上绘制路由并关闭屏幕
- pine-script - 交易视图趋势线被一一清除
- java - 我想用 SQLite 数据库中的数据填充 TableView,
- python - 如何在python中沿axis = 0减去?
- python - 为什么在空行上出现意外的缩进错误?
- javascript - 它在导入 express-handlebars 时给出“SyntaxError: Unexpected token”
- html - Handlebars:访问已被拒绝解析属性“some prop”,因为它不是其父级的“自己的属性”
- java - 如何在邮递员多部分/表单数据发布请求中发送应用程序/json数据以及文件?
- java - FlowLayout 的意外行为
- javascript - 如何使用 React 和 Bootstrap 将 Login/SignUp 替换为 Log out