Foros del Web » Programando para Internet » PHP »

subir varias imagenes en un formulario

Estas en el tema de subir varias imagenes en un formulario en el foro de PHP en Foros del Web. hola amigos. gracias a un amigo del foro que me dio el codigo php puedo subir una imagen a una carpeta del servidor y guardar ...
  #1 (permalink)  
Antiguo 27/06/2009, 10:23
 
Fecha de Ingreso: febrero-2009
Mensajes: 489
Antigüedad: 15 años, 2 meses
Puntos: 8
Sonrisa subir varias imagenes en un formulario

hola amigos.
gracias a un amigo del foro que me dio el codigo php puedo subir una imagen a una carpeta del servidor y guardar su ubicacion en la base de datos, pero lo q pasa es q solo he podido subir una imagen y se nesecita es guardar 3 imagenes he intentado de variaas maneras pero nada espero que me colaboren

gracias a ginitofl por el codigo
crearnoticia. php

<?
/*****Creado por: [/email]*****/
/* ginitofl */
/* Gino Flores Lopez */

$server="servidor"; /* Nuestro server mysql: */
$database="basededatos"; /* Nuestra base de datos */
$dbpass="contraseña"; /*Nuestro password */
$dbuser="usuario"; /* Nuestro user */


//datos del arhivo
$nombre_archivo = $HTTP_POST_FILES["userfile"]["name"];
$tipo_archivo = $HTTP_POST_FILES["userfile"]["type"];
$tamano_archivo = $HTTP_POST_FILES["userfile"]["size"];

//compruebo si las características del archivo son las que deseo

if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg")) && ( $tamano_archivo < 100000)))
{
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 100 Kb máximo.</td></tr></table>";
?>
<script language="javascript">
setTimeout("url()",3000);
function url()
{
window.history.back();
}
</script>
<?
}
else
{
$nom_img= $nombre_archivo;

$directorio = 'fotos/';

if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'],$directorio . "/" . $nom_img))
{
$diaactual= date("d");
$mesactual= date("m");
$anoactual= date("Y");
$fecha= $diaactual . "/" . $mesactual . "/" . $anoactual;

//NOS CONECTAMOS A LA BASE DE DATOS

$link=mysql_connect($server,$dbuser,$dbpass);

$query="INSERT INTO noticias (titulo,mensaje,foto,fecha) VALUES ('$titulo','$mensaje','$nom_img','$fecha')";

$result=mysql_db_query($database,$query,$link);

if(mysql_affected_rows($link))
{
echo "Noticia ingresada correctamente";

} else
{
echo "Error introduciendo la Noticia";
} /* Cierre del else */




}
else
{
echo "error al subir la foto";
}
}

?>

gracias
  #2 (permalink)  
Antiguo 27/06/2009, 10:26
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: subir varias imagenes en un formulario

Hola:

Solo se puede subir una imagen por campo file, así que debes poner uno por cada imagen que quieras subir. El procesamiento es el mismo por cada una.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 27/06/2009, 10:42
 
Fecha de Ingreso: febrero-2009
Mensajes: 489
Antigüedad: 15 años, 2 meses
Puntos: 8
Respuesta: subir varias imagenes en un formulario

si men pero como ayudame por fa
  #4 (permalink)  
Antiguo 28/06/2009, 01:21
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: subir varias imagenes en un formulario

Hola:

Por lo visto el campo file que tienes tiene el nombre "userfile"... puedes poner más campos con otros nombres (userfile1, userfile2...) o hacer que php reconozca un array, terminando ese nombre con un juego de corchetes... entonces simplemente recorres ese array con un bucle normal:
for ($i = 0, $total = count($_FILES["username"]); $i < $total; $i ++) {
$nombre_archivo = $HTTP_POST_FILES["userfile"][$i]["name"];
$tipo_archivo = $HTTP_POST_FILES["userfile"][$i]["type"];
$tamano_archivo = $HTTP_POST_FILES["userfile"][$i]["size"];
...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 28/06/2009, 03:49
Avatar de aldo1982  
Fecha de Ingreso: noviembre-2004
Ubicación: Santa Fe (Argentina) Colon F.C
Mensajes: 1.362
Antigüedad: 19 años, 4 meses
Puntos: 6
De acuerdo Respuesta: subir varias imagenes en un formulario

usa classUpload.php o swfupload googlealo man

salu2
__________________
LA MUERTE ESTÁ TAN SEGURA DE VENCER QUE NOS DA TODA UNA VIDA DE VENTAJA
  #6 (permalink)  
Antiguo 28/06/2009, 11:48
 
Fecha de Ingreso: febrero-2009
Mensajes: 489
Antigüedad: 15 años, 2 meses
Puntos: 8
Respuesta: subir varias imagenes en un formulario

caricatos yo hice esto puse esto userfile2 pero el problema redica es q no se sube la imagen userfile 2 sube el userfile pero con el nombre del archivo de userfile2 no se porq ej en el file1 subo la imagen bandera.jpg y en file2 subo boton.jpg ps se sibe el archivo o imagen del file1 pero con el nombre de boton.jpg pero la imagen de bandera espero q me emtienda se esta cambiando el nombre del archivo q estoy haciendo mal aaqui dejo mi codigo actual.

gracias


<?
/*********/
/* ginitofl */
/* Gino Flores Lopez */

$server="lnnnnnn"; /* Nuestro server mysql: */
$database="yavendi.com"; /* Nuestra base de datos */
$dbpass="nnnnnn"; /*Nuestro password */
$dbuser="nnn"; /* Nuestro user */


//datos del arhivo
$nombre_archivo = $HTTP_POST_FILES["userfile"]["name"];
$tipo_archivo = $HTTP_POST_FILES["userfile"]["type"];
$tamano_archivo = $HTTP_POST_FILES["userfile"]["size"];

$nombre_archivo = $HTTP_POST_FILES["userfile2"]["name"];
$tipo_archivo = $HTTP_POST_FILES["userfile2"]["type"];
$tamano_archivo = $HTTP_POST_FILES["userfile2"]["size"];

//compruebo si las características del archivo son las que deseo

if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg")) && ( $tamano_archivo < 1000000)))
{
echo "La extension o el tamano 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 Mb maximo.</td></tr></table>";
?>
<script language="javascript">
setTimeout("url()",3000);
function url()
{
window.history.back();
}
</script>
<?
}
else
{
$nom_img= $nombre_archivo;

$directorio = 'fotos/';

if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'],$directorio . "/" . $nom_img))
{
$diaactual= date("d");
$mesactual= date("m");
$anoactual= date("Y");
$fecha= $diaactual . "/" . $mesactual . "/" . $anoactual;
}
else
{
$nom_img2= $nombre_archivo;

$directorio2 = 'fotos/';

if (move_uploaded_file($HTTP_POST_FILES['userfile2']['tmp_name2'],$directorio . "/" . $nom_img2))
{
$diaactual= date("d");
$mesactual= date("m");
$anoactual= date("Y");
$fecha2= $diaactual . "/" . $mesactual . "/" . $anoactual;

//NOS CONECTAMOS A LA BASE DE DATOS

$link=mysql_connect($server,$dbuser,$dbpass);

$query="INSERT INTO productos (nombre,categoria,descripcion,descripcion2,estado, garantia,mediopago,precio,ubicacion,vendedor,email ,foto,fecha,foto2,fecha2) VALUES ('$nombre','$categoria','$descripcion','$descripci on2','$estado','$garantia','$mediopago','$precio', '$ubicacion','$vendedor','$email','$nom_img','$fec ha','$nom_img2','$fecha2')";

$result=mysql_db_query($database,$query,$link);

if(mysql_affected_rows($link))
{
echo "Nuevo producto ingresada correctamente ";

} else
{
echo "Error introduciendo Nuevo producto";
} /* Cierre del else */




}
else
{
echo "error al subir la foto";
}
}
}

?>
<a href="index.php">INICIO</a>

Última edición por charlescuella; 27/07/2009 a las 23:36
  #7 (permalink)  
Antiguo 28/06/2009, 12:15
 
Fecha de Ingreso: marzo-2008
Mensajes: 166
Antigüedad: 16 años
Puntos: 5
Respuesta: subir varias imagenes en un formulario

La mejor forma es que crees una función que procese cada archivo pasándole un array con los datos y con un foreach le vas pasando cada archivo. Algo así:

Código php:
Ver original
  1. <?php
  2.  
  3. function uploadFile(array $file)
  4. {
  5.     /*
  6.      * Ese código que creaste; $file es un array con los datos. Ejemplo $file['name'].
  7.      * Cuando exista un error lo envías de esta manera throw new Exception('El archivo debe ser jpg.').
  8.      */
  9. }
  10.  
  11. foreach ($_FILES as $file) {
  12.     try {
  13.         upoloadFile($file);
  14.     } catch ($e) {
  15.         echo $e->getMessage();
  16.     }
  17. }

Y échale un vistazo a la función pathinfo().

Saludos.
  #8 (permalink)  
Antiguo 28/06/2009, 12:35
 
Fecha de Ingreso: febrero-2009
Mensajes: 489
Antigüedad: 15 años, 2 meses
Puntos: 8
Respuesta: subir varias imagenes en un formulario

gracias por la colaboracion pero con el codigo q yo tengo como lo puedo hacer ???
es q de php se poco es me lo dio un amigo del foro y ps me gusta solo q nesecito q suba 2 o 3 imagenes a la veces
  #9 (permalink)  
Antiguo 28/06/2009, 21:43
 
Fecha de Ingreso: marzo-2008
Mensajes: 166
Antigüedad: 16 años
Puntos: 5
Respuesta: subir varias imagenes en un formulario

Debes intentarlo tu solo y cuando tengas los errores específicos nos dices, pero estás pidiendo que te hagan el código.

Saludos.
  #10 (permalink)  
Antiguo 29/06/2009, 20:56
 
Fecha de Ingreso: febrero-2009
Mensajes: 489
Antigüedad: 15 años, 2 meses
Puntos: 8
todo bn papa ya lo hice

pero men tengo un problema que a nivel local ( localhost) funciona todo bien pero lo estoy montando al servidor y fijese que solo me guarda la imagen y la fecha pero los otro datos no como el nombre la categoria y demas aaa eso a q se puede deber ps si esta insertado unos datos pero los otro no porq ?

problema solucionado era el hosting ya me lo repararon

Última edición por GatorV; 28/07/2009 a las 08:38
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 19:55.