我无法访问 public 磁盘上的文件内容
i cannot access to file content on public disk
在 Laravel 8
file_get_contents(asset('storage/list.json');
给我:
ErrorException
file_get_contents(http://localhost:8000/storage/list.json): failed to
open stream: HTTP request failed!
但是:http://localhost:8000/storage/list.json
存在并且可以通过浏览器访问。
在我的 config/filesystem.php
iv'e:
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
'permissions' => [
'file' => [
'public' => 0664,
'private' => 0600,
],
'dir' => [
'public' => 0775,
'private' => 0700,
],
],
],
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
并且我创建了符号 link 具有:
php artisan storage:link
命令。
我什至尝试按照 filesystem.php 中的描述手动将文件权限添加到存储文件夹,但没有任何改变。
当您想要使用文件时,您应该使用绝对路径。 file_get_contents() 没问题。 laravel 中有一些文件包装器可用,但在内部它们都使用 file_get_contents().
尝试
file_get_contents(public_path(asset('storage/list.json')));
如果从存储文件获取尝试
file_get_contents(storage_path('app/assets/list.json'));
在 Laravel 8
file_get_contents(asset('storage/list.json');
给我:
ErrorException file_get_contents(http://localhost:8000/storage/list.json): failed to open stream: HTTP request failed!
但是:http://localhost:8000/storage/list.json
存在并且可以通过浏览器访问。
在我的 config/filesystem.php
iv'e:
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
'permissions' => [
'file' => [
'public' => 0664,
'private' => 0600,
],
'dir' => [
'public' => 0775,
'private' => 0700,
],
],
],
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
并且我创建了符号 link 具有:
php artisan storage:link
命令。
我什至尝试按照 filesystem.php 中的描述手动将文件权限添加到存储文件夹,但没有任何改变。
当您想要使用文件时,您应该使用绝对路径。 file_get_contents() 没问题。 laravel 中有一些文件包装器可用,但在内部它们都使用 file_get_contents().
尝试
file_get_contents(public_path(asset('storage/list.json')));
如果从存储文件获取尝试
file_get_contents(storage_path('app/assets/list.json'));