Laravel 不可能创建根目录

2022-08-30 21:07:57

我已经查看了有关此内容的其他帖子,由于某种原因,我的似乎是独一无二的

从本质上讲,我试图做的是将上传的照片存储在公共目录中以便于访问,但是当我存储它们时,我试图将它们存储在用户特定的文件夹中,因此

/public/photos/$User->id/$filename.jpg

现在我有Dropzone上传文件,我已经添加到我的文件系统.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".",…}

不知道这个时期是从哪里来的,任何帮助都非常感谢

谢谢大家!

  • 扎克

答案 1

通过根据评论设置权限来未知地修复它,我使用了

chown -R www-data:root .

在我的目录的根目录中

编辑:我用了,意思是将Laravel目录中所有内容的所有者设置为(Web服务器)并且很明显。如果您这样做,您应该与非root用户一起执行此操作,或者只是www-data:rootwww-datarootrootwww-data


答案 2

首先,删除这些文件夹

/public/storage

/storage/app/public

然后运行以下命令

php artisan storage:link

推荐