我可能做了一些非常简单的错误,但是当我尝试创建一个目录(使用插入的变量作为最后一个文件夹名称执行)时,我收到错误:
警告: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.");
}
当然目录不存在..我正在尝试现在制作它?困惑!
答案 0 :(得分:90)
这是因为您的文件系统中没有images/listing-images/rent
路径。
如果要创建整个路径 - 只需将第3个参数作为true
传递:
mkdir('images/listing-images/rent/'.$insertID, 0777, true);
目前你也有可能在错误的目录中。如果是这种情况 - 您需要使用chdir()
更改当前目录或指定完整路径。
答案 1 :(得分:13)
假设您正在使用PHP> 5.0.0,尝试mkdir("path", 0777, true);
以递归方式创建目录(参见此处:http://php.net/manual/en/function.mkdir.php)。
答案 2 :(得分:6)
您的字符串中有错误:
mkdir("images/listing-images/rent/'.$insertID.");
应该是:
mkdir("images/listing-images/rent/$insertID");
答案 3 :(得分:0)
$ upPath =“../uploads/RS/2014/BOI/002”; //完整路径
$ tags = explode('/',$ upPath); //爆炸完整路径
$ mkDir =“”;foreach($tags as $folder) { $mkDir = $mkDir . $folder ."/"; // make one directory join one other for the nest directory to make echo '"'.$mkDir.'"<br/>'; // this will show the directory created each time if(!is_dir($mkDir)) { // check if directory exist or not mkdir($mkDir, 0777); // if not exist then make the directory } }
答案 4 :(得分:0)
在我的情况下,$ insertID是通过concatinating
从一些数据生成的sys.argv
我简单地重写了这样的代码并且错误消失了:
$insertID=$year.$otherId;
答案 5 :(得分:0)
可能真正的错误是他忘了一个额外的顶点。
此:
mkdir("images/listing-images/rent/'.$insertID.");
内部:
/'.$insertID."
正确版本:
/".$insertID
扩展的正确版本:
mkdir("images/listing-images/rent/".$insertID);
答案 6 :(得分:-2)
您不应该使用is_dir()来检查是否存在某些内容,您也需要使用file_exists()。尝试:
if (file_exists("images/listing-images/rent/$insertID") {
mkdir("images/listing-images/rent/$insertID.");
}
采取了'。因为它看起来像语法错误,但你可能有合理的理由将其保留。
如果mkdir仍然失败,可能是images / listing-images / rent不存在,如果是这样,你必须单独创建。