Foros del Web » Programando para Internet » PHP »

Problemas al subir varias imagenes

Estas en el tema de Problemas al subir varias imagenes en el foro de PHP en Foros del Web. Hola, pues miren tengo un problema, más que un problema es que no se me ocurre como hacerlo aun que ya he probado de muchas ...
  #1 (permalink)  
Antiguo 02/07/2010, 09:33
 
Fecha de Ingreso: junio-2010
Mensajes: 62
Antigüedad: 9 años, 8 meses
Puntos: 0
Problemas al subir varias imagenes

Hola, pues miren tengo un problema, más que un problema es que no se me ocurre como hacerlo aun que ya he probado de muchas formas.

El problema es que me sube solamente una foto, aun que me guarda en la base de datos el nombre de todas (en campos distintos img1, img2, img3...)

Al mostrarlas solo muestra la primera puesto que solo es esa la que se subió.

el código es el siguiente:

el formulario

Código PHP:
<FORM METHOD='POST' ACTION='index.php?seccion=agregardestacadodb' enctype='multipart/form-data'>
<
b>Subir im&aacute;gen del art&iacute;culo: (la imagen tiene restricci&oacute;n de tama&ntilde;o a 1,5Mb)</b
  <
br> <br>
        <
input name='img1' type='file'
        <
br> <br
     <
input name='img2' type='file'
        <
br> <br
     <
input name='img3' type='file'
        <
br> <br
     <
input name='img4' type='file'
        <
br> <br
<
INPUT TYPE='SUBMIT' value='Insertar'>
</
FORM
y el de agregar ala db es el siguiente

Código PHP:
//datos del arhivo 
$carpeta "img1";
$nombre_archivo1 $_FILES['img1']['name']; 
$tipo_archivo $_FILES['img1']['type']; 
$tamano_archivo $_FILES['img1']['size']; 
$nombre_archivo_temp $_FILES['img1']['tmp_name'];
//datos del arhivo 
$carpeta "img2";
$nombre_archivo2 $_FILES['img2']['name']; 
$tipo_archivo $_FILES['img2']['type']; 
$tamano_archivo $_FILES['img2']['size']; 
$nombre_archivo_temp $_FILES['img2']['tmp_name'];
//datos del arhivo 
$carpeta "img3";
$nombre_archivo3 $_FILES['img3']['name']; 
$tipo_archivo $_FILES['img3']['type']; 
$tamano_archivo $_FILES['img3']['size']; 
$nombre_archivo_temp $_FILES['img3']['tmp_name'];
//datos del arhivo 
$carpeta "img4";
$nombre_archivo4 $_FILES['img4']['name']; 
$tipo_archivo $_FILES['img4']['type']; 
$tamano_archivo $_FILES['img4']['size']; 
$nombre_archivo_temp $_FILES['img4']['tmp_name'];

$sql"INSERT INTO destacadosv (nombre, apellidos, localidad, provincia, contacto, cp, pais, categoria, nombre_art, descripcion, precio, img1, img2, img3, img4, fecha) VALUES ('$nombre', '$apellidos', '$localidad', '$provincia', '$contacto', '$cp', '$pais', '$categoria', '$nombre_art', '$descripcion', '$precio', '$nombre_archivo1', '$nombre_archivo2', '$nombre_archivo3', '$nombre_archivo4', '$fecha')";
mysql_query($sql)or die(mysql_error());
//compruebo si las características del archivo son las que deseo 
if (!((strpos($tipo_archivo"gif") || strpos($tipo_archivo"jpeg")) && ($tamano_archivo 10000000000))) { 
       echo 
"La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de 1.5 Mb máximo.</td></tr></table>"
}else{ 
       if (
move_uploaded_file($nombre_archivo_temp"$carpeta/$nombre_archivo1, $nombre_archivo2, $nombre_archivo3, $nombre_archivo4" ))
    { 
// Nos Indica que el Registro a sido Insertado
echo"<div align='center'>
<h3>Su artículo se ha insertado correctamente inmediatamente podrás verlo en la web.<br />
Si el artículo que se acaba de subir a la web no cumple con las normas de la web será eliminado inmediatamente.<br>
<a href='index.php'> Haz click para volver a la portada.</a>
</div>"
;


  #2 (permalink)  
Antiguo 02/07/2010, 09:52
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 11 años, 6 meses
Puntos: 1532
Respuesta: Problemas al subir varias imagenes

si las sube todas, pero es solo a una a la que mueves con move_uploaded_file y además esta función mueve un archivo a la vez, y no acepta un array
  #3 (permalink)  
Antiguo 02/07/2010, 09:56
 
Fecha de Ingreso: junio-2010
Mensajes: 62
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: Problemas al subir varias imagenes

Vale gracias, y la solución cual sería?
Yo he probado haciendo varios move_uploaded_file pero no se si los haría bien.

Última edición por davibello; 02/07/2010 a las 10:03
  #4 (permalink)  
Antiguo 02/07/2010, 10:27
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 15 años, 5 meses
Puntos: 71
Respuesta: Problemas al subir varias imagenes

Normal, solo te sube una, por que solo le dices que suba una.

Debes cambiar un par de cosas.
Primero, a cada variable debes llamarlas con diferente nombre, igual que haces con 'nombre_archivo..' lo mismo para tipo_archivo, etc...

Y luego, haces un move_uploaded_file con cada una de las variables.

Verdad que te esta subiendo la que pones en el ultimo campo del formulario?
  #5 (permalink)  
Antiguo 02/07/2010, 17:20
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 15 años
Puntos: 25
Respuesta: Problemas al subir varias imagenes

Se me hace que estas desperdiciando mucho código, lo mejor seria usar los famosos arreglos
Pero bueno en tu caso, la solución vendria siendo:

Tienes algunos errorcillos, ejemplo:
Debes ponerle un identificados distinto a cada archivo, asi como pones $img1 asi debe ser para las otras variables y ya sobre eso en los move... pues poner

if (move_uploaded_file($nombre_archivo_temp1, "$carpeta/$nombre_archivo1" ))
..........

if (move_uploaded_file($nombre_archivo_temp2, "$carpeta/$nombre_archivo2" ))
.........

if (move_uploaded_file($nombre_archivo_temp3, "$carpeta/$nombre_archivo3" ))
...........

if (move_uploaded_file($nombre_archivo_temp4, "$carpeta/$nombre_archivo4" ))
...........



lógicamente, acomodados como es correcto.
__________________
Hospedaje Web al mejor costo!
  #6 (permalink)  
Antiguo 02/07/2010, 17:43
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 11 años, 11 meses
Puntos: 10
Respuesta: Problemas al subir varias imagenes

Agrega esto "[]" a todos los files:

<input name='img[]' type='file'>
<input name='img[]' type='file'> //...etc

Y luego haces un loop:

Código PHP:


for($i=0$i<count($_FILES["img"]["name"]); $i++){

//echo  para ver si funciona antes de enviar
echo "<li>".$_FILES['img']['tmp_name'][$i];

//copy($_FILES['img']['tmp_name'][$i], $_FILES['img'][name][$i]);


Bueno deberia funcionar, no lo probe.
  #7 (permalink)  
Antiguo 02/07/2010, 17:49
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 15 años
Puntos: 25
Respuesta: Problemas al subir varias imagenes

hay un error en tu sintaxis @wiwi74

pero bueno, para no andar experimentando te voy a facilitar la tarea @davibello

Checate este link:

http://www.cristalab.com/tips/subir-...n-php-c32381l/

aunque siempre es bueno BUSCAR EN EL FORO ó en las FAQS
__________________
Hospedaje Web al mejor costo!
  #8 (permalink)  
Antiguo 02/07/2010, 20:12
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 11 años, 11 meses
Puntos: 10
Respuesta: Problemas al subir varias imagenes

Error

Me he tomado la molestia de revisarlo, pese a que aclare que no lo habia probado, y la verda que funciona. Ademas era a modo de explicacion, no para que copie y pegue

Código PHP:

<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="img[]"><br />
<input type="file" name="img[]"><br />
<input type="file" name="img[]"><br />
<input type="submit" value="Enviar">
</form>

<?php

for($i=0$i<count($_FILES["img"]["name"]); $i++){ 
//echo  para ver si funciona antes de enviar 
//echo "<li>".$_FILES['img']['tmp_name'][$i]; 
//echo $_FILES["img"]["name"][0];

//...caramba, y ademas sube los archivos
copy($_FILES['img']['tmp_name'][$i], $_FILES['img'][name][$i]); 
}  

//resultado echo "tmp_name":
"C:\WINDOWS\Temp\php59.tmp"
"C:\WINDOWS\Temp\php5A.tmp"
"C:\WINDOWS\Temp\php5B.tmp"


?>
Aportar esta muy bien, denigrar a los demas para sobresalir uno, es mala cosa.

Ah, y me olvidaba, un usuario posteo en foros del web este codigo porque tenia algunos problemas, de donde habra salido:

http://www.forosdelweb.com/f18/consu...upload-814754/

Y, en parte de ese codigo, tome algunas partes, para explicar aqui.

Aclaro: cristalab es una pagina exelente (por las dudas).

Última edición por wiwi74; 02/07/2010 a las 20:18
  #9 (permalink)  
Antiguo 02/07/2010, 21:18
Avatar de egepe  
Fecha de Ingreso: diciembre-2009
Mensajes: 310
Antigüedad: 10 años, 2 meses
Puntos: 7
Respuesta: Problemas al subir varias imagenes

Te apoyo wiwi74 porque uno leo y trata de resolvar a los demas 1) rapido y 2) para que aprendan. Entonces a veces se te pueden pasar cosas
  #10 (permalink)  
Antiguo 08/07/2010, 05:06
 
Fecha de Ingreso: junio-2010
Mensajes: 62
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: Problemas al subir varias imagenes

Gracias a todos, me fue de gran ayuda y ya solucione el problema.

Un saludo

Etiquetas: imagenes, subir
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 07:05.