在路径中找不到Laravel文件,但确实存在

kjd*_*n84 6 php storage file laravel

尝试获取文件内容时在控制台中出现以下错误:

[League \ Flysystem \ FileNotFoundException]在以下位置找不到文件:C:/wamp64/www/lion/resources/generate/json/Car.json

当我在资源管理器中复制并粘贴该确切路径时,它会很好地打开json文件。

这是我的代码:

$this->json = json_encode(Storage::get(resource_path('generate/json/'.$this->argument('model').'.json')));
Run Code Online (Sandbox Code Playgroud)

kjd*_*n84 11

我想到了。

Storage::get 实际上使用相对于文件系统磁盘配置的路径,因此错误消息本身具有误导性。

我已经通过简单地使用file_get_contents()来纠正了这个问题。


Glu*_*ten 6

正如其他人指出的,Storage::get确实使用了相对于文件系统磁盘配置的路径,默认情况下使用local驱动程序 ( config/filesystems.php):

'local' => [
    'driver' => 'local',
    'root' => storage_path('app'),
],
Run Code Online (Sandbox Code Playgroud)

因此,如果您正在使用local驱动程序并且您的文件驻留在app/public/yourfile.ext例如,那么调用Storage应该是:

Storage::get('public/yourfile.ext');
Run Code Online (Sandbox Code Playgroud)