我正在尝试将图像上传到链接到Laravel的公用文件夹的storage/app/public/
文件夹中。我的filesystems.php
的配置方式如下:
'default' => env('FILESYSTEM_DRIVER', 'public')
//rest of the code
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
然后在我的控制器上,上传图片:
$file = $request->hasFile('imagem');
$file = $request->file('imagem')->isValid();
$upload = $request->imagem->store('instituicoes');
我希望将文件上传到此路径storage/app/public/instituicoes
,但是当我使用此代码时,Laravel在storage/app
文件夹而不是在我的storage/app/public/
处创建了'instituicoes'文件夹定义为存储路径。
答案 0 :(得分:0)
来自https://laravel.com/docs/5.7/filesystem
公用磁盘用于将要公开访问的文件。默认情况下,公用磁盘使用本地驱动程序,并将这些文件存储在storage / app / public中。为了使它们可以从网上访问,您应该创建一个从public / storage到storage / app / public的符号链接。
要创建符号链接,可以使用storage:link Artisan命令:
php artisan storage:link
答案 1 :(得分:0)
由于默认磁盘正在使用FILESYSTEM_DRIVER
环境变量,因此请确保将变量值设置为public
作为默认磁盘。看来它可能正在使用您的local
磁盘。
您也可以尝试更改此内容:
$upload = $request->imagem->store('instituicoes');
对此:
$upload = $request->imagem->store('instituicoes', 'public');
强制使用public
磁盘而不是默认磁盘。