在Codeigniter

时间:2016-08-25 02:27:01

标签: php codeigniter mkdir

我试图在Codeigniter安装中使用php的mkdir函数递归创建一个目录。我的代码如下所示:

mkdir('docs/client/bills/payd', 0777, true)

docs 目录已存在于我的网站根目录中,客户端目录正在创建时获得0755权限,帐单目录正在出现使用权限创建1341 (很奇怪!),并且永远不会创建最后一个目录付费
我试图将mkdir参数列表中的权限更改为0,755等等......并且没有任何更改。我也尝试将umask设置为0,0777 ......什么都没有。

umask(0777);
mkdir('docs/client/bills/payd', 0777, true)

任何人都可以说我做错了什么?上面的代码是从Codeigniter常规控制器调用的。

3 个答案:

答案 0 :(得分:1)

尝试

if ( ! is_dir( FCPATH.'docs/client/bills/payd' )//FCPATH is absolute path to the project directory
{
    mkdir( FCPATH.'docs/client/bills/payd', 0777, true );//although 0755 is just fine and recomended for uploading and reading
}

答案 1 :(得分:0)

使用它来指定工作目录,可能会混淆目录所在的位置。

mkdir( getcwd().'docs/client/bills/payd', 0777, true);

getcwd是codeigniter的工作目录。您可以在PHP指南中搜索getcwd()函数,以使其更清晰。

这应该有用。

修改

为了更清楚,这将返回以下内容:

C:\xampp\htdocs\YOUR_ROOT_DIRECTORY\docs\client\bills\payd

再次编辑

虽然在再次阅读之后,这只会创建付费并假设已经创建了docs \ client \ bills。您可以使用mkdir或使用文件资源管理器创建客户端和账单。但是还有其他PHP方式,如果需要我可以提供帮助。

Goodluck meyt

答案 2 :(得分:0)

我还遇到了PHP mkdir这个奇怪的“ 1341”权限错误,与CodeIgniter无关,这是一个纯PHP的问题!

经过大量实验,我唯一能使它起作用的方法是在路径的末尾包含一个斜杠,并将递归标志设置为“ true”。 (即使PHP文档未显示最后的斜杠,而我仅创建了一个目录。)

$existing_path = '/these/directories/already/exist/';
mkdir( $existing_path . 'new-directory/', 0755, true);