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 和图像未加载,可能假定为目录