【问题标题】:Laravel - Can't save file from Disk to database recordLaravel - 无法将文件从磁盘保存到数据库记录
【发布时间】:2021-05-09 05:46:26
【问题描述】:

我正在使用 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() 函数来测试它。

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

【问题讨论】:

  • 你能显示实际抛出错误的代码吗?第二行如何抛出错误? $newer 对象会发生什么?您从 Storage 获得的是 S3 链接,不一定是路径。您可以通过转储 $file 变量来检查

标签: php laravel eloquent octobercms


【解决方案1】:

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

要获得路径,你应该这样做:

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

或者,从 Laravel 5.4 开始:

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

更多细节:

How to get file URL using Storage facade in laravel 5?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-29
    • 1970-01-01
    • 2016-05-21
    • 1970-01-01
    • 2016-07-22
    • 2013-12-19
    • 2010-09-23
    • 2010-11-08
    相关资源
    最近更新 更多