我正在开发Laravel7(在Windows10上使用Laragon4.0),我有一些文件可以从远程URL下载和保存。一切正常,但我必须执行“php artisan config:clear”来更新mysql配置,之后保存在存储/公用文件夹中的图像将不再提供服务。
文件在那里,但只是没有提供,然后我删除了/storage/public folder中的所有内容,删除了/public folder中指向/storage的符号链接(自然执行“php artisan storage:link”),并像以前一样用文件夹和文件再次填充/storage/public。文件夹结构在那里,文件也在那里,但当我试图访问它们时,我得到404错误。
我尝试了“php artisan Optimization:clear”和我在stackoverflow上找到的所有建议,但似乎没有任何帮助,我不知道该去哪里寻找,请帮助我。
以下是我用来下载/保存图像的代码:
$url = $team["logo"];
$contents = file_get_contents($url);
$name = substr($url, strrpos($url, '/') + 1);
$file = 'public/team/logo/'. $name;
Storage::put('team/logo/'. $name, $contents);
这是我在视图上显示图像的方式:
<img src="{{Storage::url($team->logo)}}" style="max-width:50px">
这是我在filesystems.php上的公共磁盘配置
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
当您的驱动程序设置为
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
您的Storage::disk('local')
绝对值设置为/Storage/app/public。因此,$file='public/team/logo/'$姓名代码>变成
$file='team/logo/'$姓名代码>
如果您使用的是“代码>干预/图像< /代码>库,您可以考虑更改。
$contents = file_get_contents($url);
到
$contents = File::make($url);
看见http://image.intervention.io/api/make