Codeigniter 制作目录(如果不存在)

Posted

技术标签:

【中文标题】Codeigniter 制作目录(如果不存在)【英文标题】:Codeigniter make directory if not exist 【发布时间】:2013-05-02 09:12:33 【问题描述】:

您好,谁能帮我解决这个问题。基本上我使用了codeigniter的文件上传类链接是 here 它工作正常!但我需要知道如何在这个默认上传路径$config['upload_path'] = './uploads/' 中创建目录,文件夹的名称是今天的日期这是我的示例代码。

date_default_timezone_set('Asia/Manila');
$date = date('Y-m-d H:i:s');

    $config['upload_path'] = './uploads/'.$date;
    $config['allowed_types'] = 'jpg|jpeg|gif|png';
    $config['max_size'] = '100';
    $config['max_width']  = '1024';
    $config['max_height']  = '768';


if (!is_dir('uploads/'.$date)) 
mkdir('./uploads/' . $date, 0777, TRUE);


我收到了类似的错误

Message: mkdir(): Invalid argument

我搜索它将如何解决,他们说这个0777 CI 权限可以,但它仍然对我不起作用。

感谢您的回复。

【问题讨论】:

":" 目录名中不允许使用冒号。 尝试给出完整的路径。并用双引号括起来。 @elavarasanlee 感谢您提供的信息,我现在就试试,如果解决了会回复您 使用date('Y-m-d H.i.s')而不是':'。 我已经尝试了 $date = 'abc' 上面代码的第二行,以测试日期是否是我的问题,但我仍然遇到同样的错误 【参考方案1】:

日期格式将具有特殊字符,例如 -:

我不确定-,但地图上不允许使用:。所以你必须删除那个字符$date

$date = str_replace( ':', '', $date);
if (!is_dir('uploads/'.$date)) 
    mkdir('./uploads/' . $date, 0777, TRUE);


或用作elavarasan lee表示使用:

date('Y-m-d H.i.s')

【讨论】:

@kodewrecker,没问题。很高兴我能帮助你。不要忘记,在您在 codeigniter 配置中设置之前,您必须更改日期。否则仍然会失败;)【参考方案2】:
if(!is_dir($config['upload_path'])) mkdir($config['upload_path'], 0777, TRUE);

【讨论】:

这个答案在低质量帖子审查队列中,因为它只是一行代码,没有任何解释。请解释您的代码的作用以及它如何回答问题。 好的答案不需要解释。这是最好的答案。【参考方案3】:

如果您是 codeigniter 的新手,并且以前在 php 中使用过代码来制作目录,例如

$target_dir="../../media/profile/".date('my')."/";
    if(!file_exists($target_dir))
        mkdir($target_dir,0777);
    

那么在codeignitor中你只能使用一个点作为外部目录路径

$target_dir="././media/profile/".date('my')."/";
    if(!file_exists($target_dir))
        mkdir($target_dir,0777);
    

这个解决了我的问题。

【讨论】:

以上是关于Codeigniter 制作目录(如果不存在)的主要内容,如果未能解决你的问题,请参考以下文章

Codeigniter + Angular Js:如何接收 JSON 数据

使用 cpanel 的 codeigniter 密码保护目录

Codeigniter CSS、JS 和图像未加载,可能假定为目录

Codeigniter URL 问题

CodeIgniter - 如果新的或更新的重复记录则插入活动记录

CodeIgniter 正确设置路由