existe - php chmod directory
mkdir() dice que no hay tal directorio y falla? (6)
Es probable que esté haciendo algo muy mal, pero cuando intento crear un directorio (usando una variable de una inserción que se acaba de realizar como último nombre de carpeta), aparece el error
Advertencia: mkdir () [function.mkdir]: no existe tal archivo o directorio en / home / blah / blah
con el código:
if (!is_dir("images/listing-images/rent/''.$insertID.")) {
//make new directory with unique id
mkdir("images/listing-images/rent/''.$insertID.");
}
Por supuesto, el directorio no existe ... ¿Estoy intentando hacerlo ahora? ¡confuso!
No debe usar is_dir () para verificar si existe algo, también desea file_exists (). Tratar:
if (file_exists("images/listing-images/rent/$insertID") {
mkdir("images/listing-images/rent/$insertID.");
}
Han tomado el ''. ya que parece un error de sintaxis, pero es posible que tenga un motivo legítimo para mantenerlo.
Si el mkdir sigue fallando, podría ser que no existan images / listing-images / rent, tendrá que crearlo por separado si es así.
Ocurre porque no tienes images/listing-images/rent
ruta de images/listing-images/rent
existentes en tu sistema de archivos.
Si desea crear la ruta completa, solo pase el tercer argumento como true
:
mkdir(''images/listing-images/rent/''.$insertID, 0777, true);
También existe la posibilidad de que esté en un directorio equivocado actualmente. Si este es el caso, debe cambiar el directorio actual con chdir()
o especificar la ruta completa.
Suponiendo que está utilizando PHP> 5.0.0, intente mkdir("path", 0777, true);
para habilitar la creación recursiva de directorios (consulte aquí: http://php.net/manual/en/function.mkdir.php ).
Tienes un error en tu cadena:
mkdir("images/listing-images/rent/''.$insertID.");
debiera ser:
mkdir("images/listing-images/rent/$insertID");
en mi caso, se insertó $ insertID a partir de algunos datos como cadena concatinando
$insertID=$year.$otherId;
Simplemente reescribí el código como este y el error desapareció:
$insertID=(int)($year.$otherId);
- recursivo Permite la creación de directorios anidados especificados en el nombre de la ruta.
- pero no funciono para mi !! para eso aquí es lo que se me ocurrió !!
- y funciona muy perfecto !!
$ upPath = "../uploads/RS/2014/BOI/002"; // ruta completa
$ tags = explode (''/'', $ upPath); // explotar el camino completo
$ 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 } }