Laravel无法创建根目录

Zac*_*ley 7 php laravel laravel-5 laravel-filesystem

我已经查看了关于这个的其他帖子,我的某些原因似乎是独一无二的

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

/public/photos/$User->id/$filename.jpg
Run Code Online (Sandbox Code Playgroud)

现在我有Dropzone上传文件,我已经添加到我的filesystem.php这个语句

'public_uploads' => [
  'driver' => 'local',
  'root'   => public_path(),
],
Run Code Online (Sandbox Code Playgroud)

所以在理论上当我使用时访问它

Storage::disk('public_uploads') 
Run Code Online (Sandbox Code Playgroud)

它应该检索正确的路径

这也是我的控制器

$User = User::find(Auth::user()->id);
$Photo = Request::file('photo');
Storage::disk('public_uploads')->put("photos/$User->id", $Photo);
Run Code Online (Sandbox Code Playgroud)

然后我在上传时从Laravel收到此错误

{message: "Impossible to create the root directory "/censoredfilesystem/public/Photos/1".",…}
Run Code Online (Sandbox Code Playgroud)

不知道这个时期的来源,并且非常感谢任何帮助

谢谢大家!

  • 扎克

Zac*_*ley 9

通过根据评论设置权限来修正它,我用过

chown -R www-data:root .
Run Code Online (Sandbox Code Playgroud)

在我的目录的根目录中

  • 但这将使 www-data 访问整个 laravel 结构,您应该只将 www-data 提供给 /censoredfilesystem/public/Photos/ 。所以 sudo chown :www-data /censoredfilesystem/public/Photos/ 和 sudo chmod 775 /censoredfilesystem/public/Photos/ (5认同)