Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Crear directorios anidados

Estas en el tema de Crear directorios anidados en el foro de PHP en Foros del Web. Buenas, mi problema es el siguiente, creo una ruta a partir de varios campos extraídos de una base de datos y dicho resultado lo almaceno ...
  #1 (permalink)  
Antiguo 24/05/2016, 13:19
 
Fecha de Ingreso: abril-2016
Mensajes: 2
Antigüedad: 8 años, 7 meses
Puntos: 0
Crear directorios anidados

Buenas, mi problema es el siguiente, creo una ruta a partir de varios campos extraídos de una base de datos y dicho resultado lo almaceno en la variable $ruta siendo este un ejemplo:

$ruta ='valor1/valor2/valor3';

Hasta ahí todo bien, el problema llega cuando intento crear la ruta; He probado, por ejemplo poniendo un valor solo y si que ha funcionado pero con varios no hace nada.

if(!file_exists('$ruta')){
mkdir("$ruta");
}

Alguien podría decirme al menos por que.
Un saludo y gracias de antemano
  #2 (permalink)  
Antiguo 24/05/2016, 15:19
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 11 meses
Puntos: 39
Respuesta: Crear directorios anidados

Porque debe de haber un error en tu variable $ruta.

Prueba a imprimir tu variable y valida que sea la ruta correcta.

Yo uso is_dir para comprobar que no esté creada, no sé que pueda diferenciar de file_exists, aunque por obviedad uno es para directorios y otro para archivos.

Como último consejo, no te olvides de asignarle en el segundo parámetro del mkdir, los permisos de la carpeta, esto por seguridad del sitio. Saludos

Aquí te dejo un ejemplo de lo que hago.

Código PHP:
Ver original
  1. <?php
  2. $carpetaAdjunta="../tareas/".$cod."/";
  3.  
  4. if(!is_dir($carpetaAdjunta)){
  5.     mkdir($carpetaAdjunta, 0775);
  6. }
  7.  
  8. ?>
  #3 (permalink)  
Antiguo 24/05/2016, 16:55
 
Fecha de Ingreso: septiembre-2014
Mensajes: 79
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: Crear directorios anidados

Hola, porque no estas armando bien la ruta? Te falta la " / " del final de la linea?
hace un echo de tu ruta o poné el código a ver en donde está el problema-
__________________
Un perro no es perro por ladrar, sino por ser perro...
  #4 (permalink)  
Antiguo 25/05/2016, 04:33
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 14 años, 1 mes
Puntos: 123
Respuesta: Crear directorios anidados

Seguramente como te indican los compañeros tu ruta puede no estar bien construida

Prueba a construir la ruta completa desde la raíz.
Código PHP:
Ver original
  1. $ruta = $_SERVER['DOCUMENT_ROOT'].'/valor1/valor2/valor3/';
  2. if ( !file_exists($ruta) ) {
  3.         mkdir($ruta, 0775, true)
  4.     }
Pero creo que tu problema es el mkdir por qué el tercer valor de mkdir es el que permite crear directorios anidados y por defecto es false. Debes establecerlo en true como en el ejemplo.


Por otro lado
Cita:
Iniciado por rodocoyote15 Ver Mensaje
Yo uso is_dir para comprobar que no esté creada, no sé que pueda diferenciar de file_exists, aunque por obviedad uno es para directorios y otro para archivos.
Esto no es cierto. Según el manual:
Cita:
file_exists — Comprueba si existe un fichero o directorio.
__________________
Unset($vida['malRollo']);

Última edición por xerifandtomas; 25/05/2016 a las 04:45
  #5 (permalink)  
Antiguo 25/05/2016, 07:45
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 11 meses
Puntos: 39
Respuesta: Crear directorios anidados

Estaba confundido con eso, todo por no ver la documentación

Gracias por la aclaración xerif!

Etiquetas: anidados, directorios, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:41.