50

非常に単純に間違ったことをしている可能性がありますが、ディレクトリを作成しようとすると (最後のフォルダー名として実行されたばかりの挿入の変数を使用して)、次のエラーが表示されます。

警告: 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."); 
}

もちろん、ディレクトリは存在しません..私は今それを作ろうとしていますか?混乱している!

4

8 に答える 8

124

images/listing-images/rentファイルシステムにパスが存在しないために発生します。

パス全体を作成する場合は、3 番目の引数を次のように渡すだけtrueです。

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

現在間違ったディレクトリにいる可能性もあります。この場合、現在のディレクトリを変更するchdir()か、フル パスを指定する必要があります。

于 2013-02-21T21:08:10.323 に答える
15

PHP > 5.0.0 を使用していると仮定して、mkdir("path", 0777, true);再帰的にディレクトリを作成できるようにしてみてください (こちらを参照してください: http://php.net/manual/en/function.mkdir.php )。

于 2013-02-21T21:09:36.057 に答える
9

文字列にエラーがあります:

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

次のようにする必要があります。

mkdir("images/listing-images/rent/$insertID");
于 2013-02-21T21:06:03.077 に答える
0
  • recursive パス名で指定されたネストされたディレクトリの作成を許可します。
  • しかし、私にはうまくいきませんでした!! そのために、ここに私が思いついたものがあります!!
  • そしてそれは非常に完璧に機能します!!

$upPath = "../uploads/RS/2014/BOI/002"; // フルパス
$tags = destroy('/' ,$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
    }
}
于 2014-04-15T04:49:10.723 に答える
-2

何かが存在するかどうかを確認するために is_dir() を使用しないでください。 file_exists() も必要です。試す:

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

'を取った。構文エラーのように見えるため、除外しますが、そのままにしておく正当な理由がある場合があります。

mkdir がまだ失敗する場合は、images/listing-images/rent が存在しない可能性があります。存在する場合は、個別に作成する必要があります。

于 2013-02-21T21:11:47.783 に答える