我想在存储空间中创建一个子文件夹 /存储/应用程序/公共/ user_folder
有没有人知道如何使用适当的权限进行操作?
答案 0 :(得分:1)
您的问题有点模糊,但我会假设您想以编程方式执行此操作,可能是在控制器内执行此操作?
因此,让我们使用Laravel的Filesystem
课来帮助我们做到这一点。
在控制器的顶部,我们可以像这样:use Illuminate\Filesystem\Filesystem;
现在我们可以实例化它。 $file = new Filesystem();
。我可能会这样做:
$file = new Filesystem();
$username = 'userNameGoesHere';
$directory = 'directory/goes/here/' . $username;
if ( $file->isDirectory(storage_path($directory)) )
{
return 'Directory already exists';
}
else
{
$file->makeDirectory(storage_path($directory), 755, true, true);
return 'Directory has been created!';
}
现在,让我们分解我们刚刚做的事情。首先,我们检查目录是否存在。我认为,做这件事只是一种很好的做法。如果没有,那么我们创建它。
让我们分解makeDirectory()
的论据。首先是系统文件路径。我们使用Laravel给我们的storage_path()
助手指出我们的存储目录。然后我们传入目录。第二个参数是该目录的chmod权限。默认情况下,它设置为493
。第三,我们将目录创建设置为递归,这意味着它将在您的路径中创建每个目录。递归的默认值为false
。最后一个参数告诉目录创建强制它。如果您没有检查该目录是否存在并且尝试创建它而不将其设置为true
,则Laravel会抛出一个异常,抱怨该目录已存在。如果它设置为true,Laravel就会重新创建目录。
您可以阅读有关Filesystem类here的更多信息。
我希望这会有所帮助。
答案 1 :(得分:1)
最简单的方法是使用mkdir
。假设775是您的正确许可:
mkdir(storage_path('app/public/user_folder'), 0775)