如果不存在,Codeigniter会创建目录

时间:2013-05-08 08:05:43

标签: php codeigniter upload mkdir

嗨,任何人都可以帮助我。基本上我用的是链接的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权限会这样做,但它仍然不适用于我。

感谢您的回复。

3 个答案:

答案 0 :(得分:16)

日期格式将包含-:

等特征字符

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

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

}

或使用elavarasan lee表示使用:

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

答案 1 :(得分:3)

if(!is_dir($config['upload_path'])) mkdir($config['upload_path'], 0777, TRUE);

答案 2 :(得分:0)

如果您是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);
    }

这个解决了我的问题。