如何让CodeIgniter创建新文件夹?
问题描述:
我有一个用户系统,当你注册一个账户时,它应该为你自动创建一个新的文件夹。如何让CodeIgniter创建新文件夹?
我的东西放在一起的mkdir的线( './上传/'。$这个 - >会话级>用户数据( 'ID'),0,真)在我注册控制器但徒劳无功。
有人知道如何让它工作吗?
答
您是否设置了正确的权限? Codeigniter或任何其他PHP脚本,由于CHMOD值不正确而不允许创建任何文件或目录。在大多数情况下,755或775的值应该可以做到。您可以使用命令行或使用FTP应用程序更改这些值(大多数应用程序可以这样做)。还要确保所有者或组被设置为与运行Web服务器时相同的用户(大多数情况下为www-data)。
实例:
chmod -R 775 /var/www/username/codeigniterapp.com/some_dir
可以用 “CHOWN” 命令改变它的组/用户:
chown -R www-data:someuser /var/www/username/codeigniterapp.com/some_dir
注意,-R标志指示命令递归执行本身。如果您只想更改顶级目录的权限,则可以简单地删除-R标志。
答
你有没有尝试设置权限在创建文件夹,像做:
mkdir('./upload/' . $this->session->userdata('id'), 0777);
答
我有一个大胆的想法,但可能是你的问题的完美解决方案。它从一开始就正确地设置了权限。我的想法是使用CodeIngniter的FTP类,然后用FTP创建目录。
$this->ftp->mkdir('/public_html/profile_pictures/username/', DIR_WRITE_MODE);
然后用下面的代码跟进,使允许值777
$this->ftp->chmod('/public_html/profile_pictures/username/', DIR_WRITE_MODE);
然后删除该目录也很容易。
$this->ftp->delete_dir('/public_html/profile_pictures/username/')
就像我说的很疯狂的想法!