2

我有一个目录路径'/uploads/files'。当用户注册时,我试图将他们的 user_id 附加到路径的末尾以使其成为“uploads/files/user_id”,以便每个用户都有自己的上传文件夹要上传到。我正在使用 Laravel,我当前的代码看起来像这样......

mkdir("uploads/files/" . Auth::user()->id);

这是创建新文件夹的正确方法吗?我一直在用很多不同的方式玩它,但似乎没有任何工作。

4

2 回答 2

3

mkdir是要走的路。但是您需要记住,必须正确设置 linux 权限才能使其正常工作。确保你有写作权。您可以使用is_writable($dirPath). 将权限设置为755或您认为最适合您的应用程序的任何内容。

您还可以使用下面的 linux 语法......它对于更复杂的操作很方便。

 $path = '/uploads/files/user_id_dir';
 shell_exec("mkdir -p $path");
于 2012-12-21T06:08:20.967 回答
1

如果您不希望您的目录易于访问和猜测,您可以对您的 user_id 进行哈希处理,然后附加到它。作为一个简单的案例,这很好。但从安全角度来看,这可能是一种威胁。

只需使用md5()orsha1()与一个随机的复杂字符串一起作为 asalt来保证您的目录安全并且远离被猜到。

另一件事是将其放在 if 条件中以检查文件夹是否已创建。

$path = 'path_to_your_directory';
if(!file_exists($path)
{
     //then create the directory
}
else
{
    //do the upload here
}

编辑:如果您正在使用Auth::user()->id,用户必须登录到该站点。即会话必须存在。否则它不会工作。猜你知道。

于 2012-12-21T06:10:03.133 回答