PHP - Crear una carpeta en el servidor antes de subir una imagen

 
Vista:
sin imagen de perfil

Crear una carpeta en el servidor antes de subir una imagen

Publicado por Elisa (71 intervenciones) el 02/06/2014 12:34:23
Buenos días.

Me acaba de surgir una duda. No soy, ni me acerco...una experta en PHP y HTML, se me van ocurriendo ideas y muchas veces no se siquiera si puede hacerse o no.
En este caso necesito subir un contenido a un servidor. Quiero que, en el mismo botón "submit" que me lleva a un php para insertar contenido, antes de insertarlo, me cree una carpeta en la que después me guarde ese contenido. No se si es una locura o es posible hacerlo, pero si alguien me orientase, no me volvería loca investigando cómo hacer algo imposible...muchas gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Crear una carpeta en el servidor antes de subir una imagen

Publicado por Elisa (71 intervenciones) el 03/06/2014 10:12:51
Buenos días. Al php que tenía ya creado, en el que además de subir a una carpeta el fichero seleccionado, hace lo propio con la ruta en la que se encuentra el mismo en una tabla de mysql, he añadido la creación de una nueva carpeta.
Lo que pretendo es, que se cree una carpeta, y la imagen se inserte en ella. Este es el código que he escrito:

mkdir("C:/Ficheros/Imagenes", 0755);

if(mkdir("C:/Ficheros/Imagenes", 0755)){
echo "Carpeta creada con éxito.<br>";
}else{
echo "Ha un fallo, la carpeta no ha podido crearse.<br>";
}

Los problemas son es el siguiente:
-->Me crea bien el directorio y le nombra como le indico, pero emite un mensaje de error diciendo que no es así...
"Warning: mkdir(): File exists in C:\xampp\htdocs\Trabajo\insertar_contenido1.php on line 17"
He seguido los pasos de la página oficial de php asiq no se si es porque he hecho el if mal...si lo quito, no sale warning.
-->Para la inserción de la imagen, he cambiado el nombre del directorio para que me la inserte dentro de la carpeta que acabo de crear, imagenes. No se cual es el motivo de que me suba la imagen a la carpeta Ficheros en vez de Imagenes, aun a pesar de haber cambiado correctamente el directorio en la parte de la subida:

$nombreDirectorio = "C:/Ficheros/Imagenes";
$nombreFichero = $_FILES['cliente']['name'];
$nombreCompleto = $nombreDirectorio . $nombreFichero;
copy($_FILES['cliente']['tmp_name'], $nombreCompleto);

y no solo eso...sino que la ruta de la imagen que sube a la BBDD sí es la que pretendo C:/Ficheros/Imagenes.
No se si es por motivos de permisos de la carpeta de nueva creación, Imagenes, o porque estoy fallando en el orden de las órdenes.

Espero que alguien pueda ayudarme, mil gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Crear una carpeta en el servidor antes de subir una imagen

Publicado por xve (6935 intervenciones) el 03/06/2014 11:30:26
Hola Elisa, te da un Warning, no un error... te indica que la carpeta ya existe.

Tendrías que revisar antes de crear la carpeta si existe... file_exists()

Sobre el problema de copiar la imagen, no tendría porque copiarla en otra carpeta... puede ser que tengas otro código? o que llames a un archivo que no es?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Crear una carpeta en el servidor antes de subir una imagen

Publicado por Elisa (71 intervenciones) el 03/06/2014 11:39:46
He contestado antes de leer, lo siento =) en efecto, con file_exists sale perfecto.

No...lo he revisado varias veces y no encuentro el error. El código sin la parte que crea la carpeta nueva, me inserta perfectamente los ficheros que subo en el lugar en el que le indico, pero si creo la carpeta, aunque modifico la ruta de destino, me la inserta en el destino anterior. Es como si se subiera antes de la creación de la carpeta imágenes...podría ser ese el problema? Que al examinar el archivo que quiero subir se quede con el destino de antes de crear la carpeta?? El archivo "file" recoge el destino del php al que lleva el botón "submit"??Pensaba que no.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Crear una carpeta en el servidor antes de subir una imagen

Publicado por Elisa (71 intervenciones) el 03/06/2014 11:31:22
El problema del warning lo he solucuinado, para que no me envíe avisos pero no tenga errores, he puesto este if:

if (!file_exists("C:/Ficheros/Imagenes")) {
mkdir("C:/Ficheros/Imagenes", 0777);
}

Lo otro sigo sin poder solucionarlo...no hay forma de que meta el contenido que subo en la carpeta que le indico, en la recién creada...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Crear una carpeta en el servidor antes de subir una imagen

Publicado por Elisa (71 intervenciones) el 04/06/2014 10:24:53
POr si le ayuda a alguien, era un fallo realmente tonto... me faltaba la barra / al final del directorio...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Crear una carpeta en el servidor antes de subir una imagen

Publicado por xve (6935 intervenciones) el 04/06/2014 15:07:54
Hola Elisa, gracias por comentarlo... la verdad no daba con el problema...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

nota

Publicado por kris medina (1 intervención) el 15/07/2015 22:49:37
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/*CON EL mkdir CREAS LA CARPETA, PERO EN EL IF LO VUELVES A UTILIZAR ASI QUE ESTAS CREANDO DOS VECES LA MISMA CARPETA...*/
/*------------------------------------------------------------------*/
mkdir("C:/Ficheros/Imagenes", 0755);
 
if(mkdir("C:/Ficheros/Imagenes", 0755)){
echo "Carpeta creada con éxito.<br>";
}else{
echo "Ha un fallo, la carpeta no ha podido crearse.<br>";
}
/*------------------------------------------------------------------*/
 
/*EN REALIDAD DEBERIA QUEDAR SOLO DE ESTA FORMA...*/
/*------------------------------------------------------------------*/
if(mkdir("C:/Ficheros/Imagenes", 0755)){echo "Carpeta creada con éxito.<br>";
}else{
echo "Ha un fallo, la carpeta no ha podido crearse.<br>";
}
/*------------------------------------------------------------------*/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar