首页 > 解决方案 > Laravel - 无法将文件从磁盘保存到数据库记录

问题描述

我正在使用 S3 来存储我的文件。我的目录中保存了一个视频。我想从 S3 获取视频并将其保存到我的数据库中的记录中。这是我正在使用的代码:

$file = Storage::get('input/TESTING.mp4');
            
$newer->video = $file;

我收到此错误(来自我的代码的第二行):

file_exists() expects parameter 1 to be a valid path, string given

该文件确实存在,我 100% 确定,Laravel 正在找到它。我使用 Storage::exists() 函数来测试它。

我不确定问题是什么,任何帮助将不胜感激。

标签: phplaraveleloquentoctobercms

解决方案


该方法Storage::get返回文件的内容而不是位置。您可以在文档中看到它。

要获取路径,您应该执行以下操作:

$path = Storage::disk('local')->getDriver()->getAdapter()->applyPathPrefix('filename.png');

或者,从 Laravel 5.4 开始:

$path = Storage::disk('public')->path('filename.png');

更多细节:

如何在 laravel 5 中使用 Storage 门面获取文件 URL?


推荐阅读