为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel获取图像的文件内容但不适用于生产环境

Laravel获取图像的文件内容但不适用于生产环境

呼啦一阵风 2022-01-07 14:22:15
我的代码在 localhost 开发中工作<img class="img-fluid rounded-circle" src="{{ url('image?type=user&file='.Auth::user()->picture_file.'&mime='.Auth::user()->picture_mime) }}" alt="Image Description">将访问imageController与get使用这个链接方法image?type=user&file=USER000053.png&mime=image/pngclass ImageController extends BaseController{    public function get(Request $request){        $file=Storage::disk($request->type)->get($request->file);         return response($file,200)->header('content-Type',$request->mime);    }}在我的filesystem.php配置文件下面'user' => [    'driver' => 'local',    'root' => storage_path('app/user'),    'url' => env('APP_URL').'/storage',    'visibility' => 'public',],上面的代码在本地主机上运行良好。但是当我们尝试推送到生产服务器(centos os)时,该代码将不起作用。它只是返回一个损坏图像。我们已经尝试过[检查] 确保存储和临时可访问。chmod 755. 即使我们尝试过 777[检查]chown到用户 apache.apache[检查] 设置 selinux 许可模式[检查] 我们确保该文件已经存在$file_exists = Storage::disk($request->type)->exists($request->file);上面的代码返回 true[检查] 在下面尝试此代码$response = Response::make($file, 200);$response->header('Content-Type', $request->mime);return $response;还是不行试图制作符号链接php artisan storage:link它在public文件夹上创建符号链接,但仍然无法正常工作尝试下载但仍然无法正常工作 return response()->download(storage_path('app/' . $request->type . "/" . $request->file));我在 GCP 的 Centos 7 环境中运行。任何想法都会帮助我。谢谢
查看完整描述

2 回答

?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

只需ob_get_clean();在响应文件之前添加。

它将清理所有缓冲区并返回内容以显示图像。

查看完整回答
反对 回复 2022-01-07
?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

如果命令ob_get_clean();对您有帮助,请在__<?php .


查看完整回答
反对 回复 2022-01-07
  • 2 回答
  • 0 关注
  • 155 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信