【发布时间】:2018-10-02 08:01:02
【问题描述】:
我已经创建了一个指定位置来将所有上传的图像存储在公共目录中,如下所示:
我有默认的config/filesystem.php 用于公共驱动程序,如下所示:
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
在我的存储库中,我正在尝试像这样保存上传的图像:
// ... snipped
if (array_key_exists('logo', $validated)) {
$logoPath = $validated['logo']->store(
'uploads/logos',
'public'
);
$company->logo = url($logoPath);
}
$company->save();
在数据库中,我可以看到公司记录的logo 字段的值如下:http://my-app.local/uploads/logos/3hlsAhnnIPjd4zhdpfhvKw4tqDkpcCz23NczwhVM.png
但是,public/uploads/logos 目录是空的。知道这里可能有什么问题吗?我应该在UploadedFile 上使用->move() 方法而不是->store()?
【问题讨论】:
-
它可能在
storage文件夹中(storage/app/public可能)? -
啊!你是对的
'root' => storage_path('app/public'),我想我需要更新这条路径。让我检查一下。 -
是的,我已经有一分钟没有处理文件上传了。但是
storage_path()helper 会生成存储文件夹的路径。您可能只想将其更改为public_path('uploads')之类的内容。或者创建一个从存储文件夹到公共文件夹的符号链接 -
是的,这就是问题所在,我没有对文件系统定义给予足够的重视。愚蠢的错误。
标签: php laravel laravel-5 image-uploading