首页 文章

mkdir()说没有这样的目录而失败了吗?

提问于
浏览
32

我可能做了一些非常简单的错误,但是当我尝试创建一个目录(使用插入的变量作为最后一个文件夹名称执行)时,我收到错误:

警告:mkdir()[function.mkdir]:/ home / blah / blah中没有这样的文件或目录

用代码:

if (!is_dir("images/listing-images/rent/'.$insertID.")) {
        //make new directory with unique id
   mkdir("images/listing-images/rent/'.$insertID."); 
}

当然目录不存在..我正在尝试现在制作它?困惑!

6 回答

  • 13

    您的字符串中有错误:

    mkdir("images/listing-images/rent/'.$insertID.");
    

    应该:

    mkdir("images/listing-images/rent/$insertID");
    
  • 6

    假设您使用的是PHP> 5.0.0,请尝试 mkdir("path", 0777, true); 以启用递归方式创建目录(请参阅此处:http://php.net/manual/en/function.mkdir.php) .

  • -2

    这是因为您的文件系统中没有 images/listing-images/rent 路径 .

    如果要创建整个路径 - 只需将第3个参数作为 true 传递:

    mkdir('images/listing-images/rent/'.$insertID, 0777, true);
    

    你当前也有可能在错误的目录中 . 如果是这种情况 - 您需要使用 chdir() 更改当前目录或指定完整路径 .

  • 88
    • recursive允许创建路径名中指定的嵌套目录 .

    • 但对我不起作用!!因为这就是我想出来的!

    • ,它的工作非常完美!!

    $ upPath =“../uploads/RS/2014/BOI/002”; //完整路径$ tags = explode('/',$ upPath); //爆炸完整路径$ mkDir =“”; foreach($ tags as $ folder){
    $ mkDir = $ mkDir . $ folder . “/”; //使一个目录加入另一个目录以供nest目录进行
    echo'“' . $ mkDir . '”
    '; //这将显示每次创建的目录
    if(!is_dir($ mkDir)){//检查目录是否存在
    mkdir($ mkDir,0777); //如果不存在则创建目录
    }
    }

  • 0

    在我的情况下,$ insertID是通过concatinating从一些数据生成的字符串

    $insertID=$year.$otherId;
    

    我简单地重写了这样的代码并且错误消失了:

    $insertID=(int)($year.$otherId);
    
  • 0

    你不应该使用is_dir()来检查是否存在某些东西,你也想要file_exists() . 尝试:

    if (file_exists("images/listing-images/rent/$insertID") {
        mkdir("images/listing-images/rent/$insertID.");
    }
    

    采取了' . 因为它看起来像语法错误,但你可能有合理的理由保留它 .

    如果mkdir仍然失败,那可能是images / listing-images / rent不存在,如果是这样,你必须单独创建它 .

相关问题