Je fais probablement quelque chose de très simplement faux, mais lorsque j'essaie de créer un répertoire (en utilisant une variable d'un insert qui vient d'être exécutée comme dernier nom de dossier), j'obtiens l'erreur:
Avertissement: mkdir () [function.mkdir]: Aucun fichier ou répertoire de ce type dans/home/blah/blah
avec le code:
if (!is_dir("images/listing-images/rent/'.$insertID.")) {
//make new directory with unique id
mkdir("images/listing-images/rent/'.$insertID.");
}
bien sûr le répertoire n'existe pas .. J'essaye de le faire maintenant? confus!
Vous avez une erreur dans votre chaîne:
mkdir("images/listing-images/rent/'.$insertID.");
devrait être:
mkdir("images/listing-images/rent/$insertID");
Cela se produit car vous n'avez pas de chemin d'accès images/listing-images/rent
Dans votre système de fichiers.
Si vous voulez créer le chemin entier - passez simplement le 3ème argument comme true
:
mkdir('images/listing-images/rent/'.$insertID, 0777, true);
Il y a également une chance que vous soyez dans un mauvais répertoire actuellement. Si tel est le cas - vous devez changer le répertoire courant avec chdir()
ou spécifier le chemin complet.
En supposant que vous utilisez PHP> 5.0.0, essayez mkdir("path", 0777, true);
pour activer la création récursive de répertoires (voir ici: http://php.net/manual /en/function.mkdir.php ).
$ upPath = "../uploads/RS/2014/BOI/002"; // chemin complet
$ tags = explode ('/', $ upPath); // exploser le chemin complet
$ 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 } }
La vraie erreur était probablement qu'il avait oublié un sommet supplémentaire.
Cette:
mkdir("images/listing-images/rent/'.$insertID.");
À l'intérieur:
/'.$insertID."
Version correcte:
/".$insertID
Version correcte étendue:
mkdir("images/listing-images/rent/".$insertID);
dans mon cas, $ insertED a été généré à partir de certaines données sous forme de chaîne en concaténant
$insertID=$year.$otherId;
J'ai simplement réécrit le code comme ceci et l'erreur a disparu:
$insertID=(int)($year.$otherId);