Laravel 无法创建根目录
Laravel Impossible to Create Root Directory
我已经查看了有关此的其他帖子,不知为何我的帖子似乎很独特
基本上我想做的是将上传的照片存储在 public 目录中以便于访问,但是当我存储它们时,我试图将它们存储在用户特定的文件夹中,所以
/public/photos/$User->id/$filename.jpg
现在我有 Dropzone 上传文件,我已经添加到我的filesystem.php这个声明
'public_uploads' => [
'driver' => 'local',
'root' => public_path(),
],
所以理论上当我使用
访问它时
Storage::disk('public_uploads')
它应该检索正确的路径
这也是我的控制器
$User = User::find(Auth::user()->id);
$Photo = Request::file('photo');
Storage::disk('public_uploads')->put("photos/$User->id", $Photo);
然后我在上传Laravel时收到此错误
{message: "Impossible to create the root directory "/censoredfilesystem/public/Photos/1".",…}
不知道经期是从哪里来的,非常感谢您的帮助
谢谢大家!
- 扎克
根据评论设置权限不知不觉修复了,我用
chown -R www-data:root .
在我的根目录中
编辑:我使用了 www-data:root
,意思是将 Laravel 目录中所有内容的所有者设置为 www-data
(网络服务器)并且 root
为 root
明显地。如果你这样做,你应该用非 root 用户来做,或者只是 www-data
首先,删除这些文件夹
/public/storage
/storage/app/public
然后运行下面的命令
php artisan storage:link
另一种选择是进入 /storage/app/public/ 并创建要存储文件的文件夹(如果不存在),即 /storage/app/public/addfolder (如果管理员或在服务器上工作,请授予您 fopen 和 fwrite 等权限)
我已经查看了有关此的其他帖子,不知为何我的帖子似乎很独特
基本上我想做的是将上传的照片存储在 public 目录中以便于访问,但是当我存储它们时,我试图将它们存储在用户特定的文件夹中,所以
/public/photos/$User->id/$filename.jpg
现在我有 Dropzone 上传文件,我已经添加到我的filesystem.php这个声明
'public_uploads' => [
'driver' => 'local',
'root' => public_path(),
],
所以理论上当我使用
访问它时Storage::disk('public_uploads')
它应该检索正确的路径
这也是我的控制器
$User = User::find(Auth::user()->id);
$Photo = Request::file('photo');
Storage::disk('public_uploads')->put("photos/$User->id", $Photo);
然后我在上传Laravel时收到此错误
{message: "Impossible to create the root directory "/censoredfilesystem/public/Photos/1".",…}
不知道经期是从哪里来的,非常感谢您的帮助
谢谢大家!
- 扎克
根据评论设置权限不知不觉修复了,我用
chown -R www-data:root .
在我的根目录中
编辑:我使用了 www-data:root
,意思是将 Laravel 目录中所有内容的所有者设置为 www-data
(网络服务器)并且 root
为 root
明显地。如果你这样做,你应该用非 root 用户来做,或者只是 www-data
首先,删除这些文件夹
/public/storage
/storage/app/public
然后运行下面的命令
php artisan storage:link
另一种选择是进入 /storage/app/public/ 并创建要存储文件的文件夹(如果不存在),即 /storage/app/public/addfolder (如果管理员或在服务器上工作,请授予您 fopen 和 fwrite 等权限)