Foros del Web » Programando para Internet » PHP »

enviar formulario con varios archivos

Estas en el tema de enviar formulario con varios archivos en el foro de PHP en Foros del Web. hola, llevo una semana intentando hacer un formulario donde se puedan subir varios archivos y no hay manera, he mirado y probado mil cosas y ...
  #1 (permalink)  
Antiguo 05/08/2010, 13:09
 
Fecha de Ingreso: enero-2010
Mensajes: 11
Antigüedad: 9 años, 10 meses
Puntos: 0
enviar formulario con varios archivos

hola, llevo una semana intentando hacer un formulario donde se puedan subir varios archivos y no hay manera, he mirado y probado mil cosas y la parte de subir archivos no me sale, los datos si que me llegan al correo, pero la parte php lo he probado de mil maneras y no lo consigo.
agradeceria vuestra ayuda. gracias
aqui os dejo lo que tengo:

formulario.html
<form action="prueba.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="100000">
<table border="1" align="left" cellpadding="5" cellspacing="1" bgcolor="#FFCC99">
<!--DWLayoutTable-->
<tr>
<td colspan="4" bgcolor="#FFCC99"><p><strong>Datos Generales</strong></p>
<p>&nbsp;</p></td>
</tr>
<tr>
<td colspan="2" bgcolor="#CCCCCC">Nombre:</td>
<td colspan="2" bgcolor="#CCCCCC"><label>
<input name="nombre" type="text" id="nombre" size="30" />
<span class="Estilored">*<br />
</span></label></td>
</tr>
<tr>
<td colspan="2" bgcolor="#CCCCCC">Telefono:</td>
<td colspan="2" bgcolor="#CCCCCC"><label>
<input name="telefono" type="text" id="telefono" size="30" />
<span class="Estilored">*<br />
</span></label></td>
</tr>
<tr>
<td colspan="2" bgcolor="#CCCCCC">Email: (no será publicado)</td>
<td colspan="2" bgcolor="#CCCCCC"><label>
<input name="email" type="text" id="email" size="30" />
<br />
</label></td>
</tr>
<tr>
<label for="archivo1"></label>
<input type="file" name="archivo1" id="archivo1" />
</p>
<p>
<label for="archivo2"></label>
<input type="file" name="archivo2" id="archivo2" />
</p>
<p>
<label for="archivo3"></label>
<input type="file" name="archivo3" id="archivo3" />
</p>
<p>
<label for="archivo4"></label>
<input type="file" name="archivo4" id="archivo4" />
</p>
<p>
<label for="archivo5"></label>
<input type="file" name="archivo5" id="archivo5" />
</p>
<p>
<label for="archivo6"></label>
<input type="file" name="archivo6" id="archivo6" />
</p>
<p>
<label for="archivo7"></label>
<input type="file" name="archivo7" id="archivo7" />
</p>
<p>
<label for="archivo8"></label>
<input type="file" name="archivo8" id="archivo8" />
</p></td>
</tr>
<tr>
<td colspan="2" align="left" valign="middle" bgcolor="#CCCCCC"><!--DWLayoutEmptyCell-->&nbsp;</td>
<td colspan="2" align="left" valign="bottom" bgcolor="#CCCCCC"><!--DWLayoutEmptyCell-->&nbsp;</td>
</tr
<tr>
<td colspan="4" align="left" valign="middle" bgcolor="#CCCCCC">
<input name="submit" type="submit" id="submit" value="enviar" /></td>




(EN OTRA PAGINA)
PRUEBA.PHP


<?
//recepcion de datos
$nombre=$_POST['nombre'];
$telefono=$_POST['telefono'];
$email=$_POST['email'];
$para='[email protected]';
$asunto='formulario web';
$mensaje='datos recibidos

nombre:'.$nombre.'

telefono:'.$telefono.'

email: '.$email.'

';

$desde='From: mi pagina';
mail($para,$asunto,$mensaje,$desde);
header('Location: respuestaformulario.html');






?>
  #2 (permalink)  
Antiguo 05/08/2010, 13:57
 
Fecha de Ingreso: julio-2010
Ubicación: La Ciudad Blanca, Mérida-Yucatán
Mensajes: 375
Antigüedad: 9 años, 4 meses
Puntos: 7
Respuesta: enviar formulario con varios archivos

hola amanda 21

en mi poca experiencia seria mejor que los inputs files los pongas asi:

Código HTML:
<input type="file" name="image[]" /> 
ya que asi lo trabajas como un array y puedes poner cuantos quieras, y la rutina para subir tantos archivos como tengas es:


Código PHP:
Ver original
  1. $dir = "../images/productos/";
  2. $tot = count($_FILES['image']['name']); // cantidad de archivos a subir
  3. for($i=0;$i<$tot;$i++){  
  4. move_uploaded_file ($_FILES['image']['tmp_name'][$i], $dir.$_FILES['image']['name'][$i]); //subimos las imagenes
  5. }

espero te sirva

saludos
  #3 (permalink)  
Antiguo 05/08/2010, 15:49
 
Fecha de Ingreso: enero-2010
Mensajes: 11
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: enviar formulario con varios archivos

hola gracias x contestar.
he cambiado lo que me has dicho pero no me funciona,
la verdad es que soy muy novata en php.

he cambiado:
<input type="file" name="archivo2" id="archivo2" />
<input type="file" name="archivo3" id="archivo3" />
por:
<input type="file" name="image[]" id="archivo2" />
<input type="file" name="image[]" id="archivo3" />
y asi con los 8 que tengo, es correcto? el image[] es en todos iguales?
y en php el &dir= "../images/productos/"; (aqui pongo en nombre de mi carpeta en el servidor no?
y en este codigo tengo que poner algun dato mio o no toco nada?
move_uploaded_file ($_FILES['image']['tmp_name'][$i], $dir.$_FILES['image']['name'][$i]);
bueno ya ves hasta donde alcanza mi ignorancia...
gracias.
  #4 (permalink)  
Antiguo 05/08/2010, 16:12
 
Fecha de Ingreso: julio-2010
Ubicación: La Ciudad Blanca, Mérida-Yucatán
Mensajes: 375
Antigüedad: 9 años, 4 meses
Puntos: 7
Respuesta: enviar formulario con varios archivos

ok

vamos por partes

todos los input deben de estar asi

Código HTML:
<input  type="file" name="image[]" /> 
ahora vamos por la parte php

Código PHP:
Ver original
  1. $dir = "../images/productos/"; // este es el directorio(carpeta) en tu servidor
  2. $tot = count($_FILES['image']['name']); //aqui sacamos el numero total de los archivos a subir
  3. for($i=0;$i<$tot;$i++){ // el ciclo para recorrer el total
  4. move_uploaded_file ($_FILES['image']['tmp_name'][$i], $dir.$_FILES['image']['name'][$i]); // subimos los archivos
  5. }

Código PHP:
Ver original
  1. $_FILES['image']['name']

esto no lo muevas ya que $_FILES[nombre del input][nombre del archivo]
y como tus inputs se llaman image[] pos no tienes porque moverlos

una cosa mas la carpeta a la que deseas subir los archivos
debe tener en la parte de permisos 777 de lo contrario no permitira que subas los archivos a dicha carpeta

espero te sirva, y no te preocupes nadie nace sabiendo, por experiencia te digo que la practica hace al maestro.

saludos

Última edición por zapt142; 05/08/2010 a las 16:15 Razón: explicar mejor
  #5 (permalink)  
Antiguo 05/08/2010, 16:40
 
Fecha de Ingreso: enero-2010
Mensajes: 11
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: enviar formulario con varios archivos

hola!
he cambiado lo que me has dicho pero no me llegan a la carpeta del servidor.los permisos de la carpeta perfiles los tengo en 777. mira asi es como lo tengo:
<form action="prueba.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="100000">
<table border="1" align="left" cellpadding="5" cellspacing="1" bgcolor="#FFCC99">
<!--DWLayoutTable-->
<tr>
<td colspan="4" bgcolor="#FFCC99"><p><strong>Datos Generales</strong></p>
<p>&nbsp;</p></td>
</tr>
<tr>
<td colspan="2" bgcolor="#CCCCCC">Nombre:</td>
<td colspan="2" bgcolor="#CCCCCC"><label>
<input name="nombre" type="text" id="nombre" size="30" />
<span class="Estilored">*<br />
</span></label></td>
</tr>
<tr>
<td colspan="2" bgcolor="#CCCCCC">Telefono:</td>
<td colspan="2" bgcolor="#CCCCCC"><label>
<input name="telefono" type="text" id="telefono" size="30" />
<span class="Estilored">*<br />
</span></label></td>
</tr>
<tr>
<td colspan="2" bgcolor="#CCCCCC">Email: (no será publicado)</td>
<td colspan="2" bgcolor="#CCCCCC"><label>
<input name="email" type="text" id="email" size="30" />
<br />
</label></td>
</tr>
<tr>
<label for="archivo1"></label>
<input type="file" name="image[]" />
</p>
<p>
<label for="archivo2"></label>
<input type="file" name="image[]" />
</p>
<p>
<label for="archivo3"></label>
<input type="file" name="image[]" />
</p>
<p>
<label for="archivo4"></label>
<input type="file" name="image[]" />
</p>
<p>
<label for="archivo5"></label>
<input type="file" name="image[]" />
</p>
<p>
<label for="archivo6"></label>
<input type="file" name="image[]" />
</p>
<p>
<label for="archivo7"></label>
<input type="file" name="image[]" />
</p>
<p>
<label for="archivo8"></label>
<input type="file" name="image[]" />
</p></td>
</tr>
<tr>
<td colspan="2" align="left" valign="middle" bgcolor="#CCCCCC"><!--DWLayoutEmptyCell-->&nbsp;</td>
<td colspan="2" align="left" valign="bottom" bgcolor="#CCCCCC"><!--DWLayoutEmptyCell-->&nbsp;</td>
</tr>
<tr>
<td colspan="4" align="left" valign="middle" bgcolor="#CCCCCC">
<input name="submit" type="submit" id="submit" value="enviar" /></td>

EN LA PARTE PHP:

<?
//recepcion de datos
$nombre=$_POST['nombre'];
$telefono=$_POST['telefono'];
$email=$_POST['email'];
$para='[email protected]';
$asunto='formulario web';
$mensaje='datos recibidos

nombre:'.$nombre.'

telefono:'.$telefono.'

email: '.$email.'

';

$desde='From: mi pagina';
mail($para,$asunto,$mensaje,$desde);
header('Location: respuestaformulario.html');

$dir = "/perfiles";
$tot = count($_FILES['image']['name']); // cantidad de archivos a subir
for($i=0;$i<$tot;$i++){
move_uploaded_file ($_FILES['image']['tmp_name'][$i], $dir.$_FILES['image']['name'][$i]); //subimos las imagenes
}

?>
  #6 (permalink)  
Antiguo 05/08/2010, 17:42
 
Fecha de Ingreso: julio-2010
Ubicación: La Ciudad Blanca, Mérida-Yucatán
Mensajes: 375
Antigüedad: 9 años, 4 meses
Puntos: 7
Respuesta: enviar formulario con varios archivos

creo que te falta la etiqueta del cerrado del form


Código HTML:
<form action="prueba.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="100000">
<table border="1" align="left" cellpadding="5" cellspacing="1" bgcolor="#FFCC99">
<!--DWLayoutTable-->
<tr>
<td colspan="4" bgcolor="#FFCC99"><p><strong>Datos Generales</strong></p>
<p>&nbsp;</p></td>
</tr>
<tr>
<td colspan="2" bgcolor="#CCCCCC">Nombre:</td>
<td colspan="2" bgcolor="#CCCCCC"><label>
<input name="nombre" type="text" id="nombre" size="30" />
<span class="Estilored">*<br />
</span></label></td>
</tr>
<tr>
<td colspan="2" bgcolor="#CCCCCC">Telefono:</td>
<td colspan="2" bgcolor="#CCCCCC"><label>
<input name="telefono" type="text" id="telefono" size="30" />
<span class="Estilored">*<br />
</span></label></td>
</tr>
<tr>
<td colspan="2" bgcolor="#CCCCCC">Email: (no será publicado)</td>
<td colspan="2" bgcolor="#CCCCCC"><label>
<input name="email" type="text" id="email" size="30" />
<br />
</label></td>
</tr>
<tr>
<label for="archivo1"></label>
<input type="file" name="image[]" />
</p>
<p>
<label for="archivo2"></label>
<input type="file" name="image[]" />
</p>
<p>
<label for="archivo3"></label>
<input type="file" name="image[]" />
</p>
<p>
<label for="archivo4"></label>
<input type="file" name="image[]" />
</p>
<p>
<label for="archivo5"></label>
<input type="file" name="image[]" />
</p>
<p>
<label for="archivo6"></label>
<input type="file" name="image[]" />
</p>
<p>
<label for="archivo7"></label>
<input type="file" name="image[]" />
</p>
<p>
<label for="archivo8"></label>
<input type="file" name="image[]" />
</p></td>
</tr>
<tr>
<td colspan="2" align="left" valign="middle" bgcolor="#CCCCCC"><!--DWLayoutEmptyCell-->&nbsp;</td>
<td colspan="2" align="left" valign="bottom" bgcolor="#CCCCCC"><!--DWLayoutEmptyCell-->&nbsp;</td>
</tr>
<tr>
<td colspan="4" align="left" valign="middle" bgcolor="#CCCCCC">
<input name="submit" type="submit" id="submit" value="enviar" /></td>
</form><!-- Aqui --> 
  #7 (permalink)  
Antiguo 06/08/2010, 07:34
 
Fecha de Ingreso: enero-2010
Mensajes: 11
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: enviar formulario con varios archivos

hola, la etiqueta de cerrado la tenia bien, asi k no se en que me falla! estoy perdida!!
  #8 (permalink)  
Antiguo 06/08/2010, 10:32
 
Fecha de Ingreso: julio-2010
Ubicación: La Ciudad Blanca, Mérida-Yucatán
Mensajes: 375
Antigüedad: 9 años, 4 meses
Puntos: 7
Respuesta: enviar formulario con varios archivos

hola de nuevo

mmmm, vamos a jugar un poco con el codigo

primero que nada pon la rutina de subir imagenes antes que nada

Código PHP:
Ver original
  1. <?
  2.  
  3. $dir = "/perfiles";
  4. $tot = count($_FILES['image']['name']); // cantidad de archivos a subir
  5. for($i=0;$i<$tot;$i++){
  6. move_uploaded_file ($_FILES['image']['tmp_name'][$i], $dir.$_FILES['image']['name'][$i]); //subimos las imagenes
  7.  
  8.  
  9. //recepcion de datos
  10. $nombre=$_POST['nombre'];
  11. $telefono=$_POST['telefono'];
  12. $email=$_POST['email'];
  13. $asunto='formulario web';
  14. $mensaje='datos recibidos
  15.  
  16. nombre:'.$nombre.'
  17.  
  18. telefono:'.$telefono.'
  19.  
  20. email: '.$email.'
  21.  
  22. ';
  23.  
  24. $desde='From: mi pagina';
  25. mail($para,$asunto,$mensaje,$desde);
  26. header('Location: respuestaformulario.html');
  27.  
  28.  
  29. }
  30.  
  31. ?>

de igual forma creo que lo que esta mal es tu $dir

prueba poniendo asi
Código HTML:
"$dir=/perfiles/"
y comentas que tal
  #9 (permalink)  
Antiguo 08/08/2010, 08:28
 
Fecha de Ingreso: enero-2010
Mensajes: 11
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: enviar formulario con varios archivos

hola, he cambiado el dir pero sigue sin funcionar! ya no se que hacer!
mi dirección en el servidor es: /.
entonces tengo que poner /.perfiles no?
  #10 (permalink)  
Antiguo 11/08/2010, 14:22
 
Fecha de Ingreso: julio-2010
Ubicación: La Ciudad Blanca, Mérida-Yucatán
Mensajes: 375
Antigüedad: 9 años, 4 meses
Puntos: 7
Respuesta: enviar formulario con varios archivos

Pruebalo asi:

EN LA PARTE PHP:

Código PHP:


<?

$dir 
"perfiles/";
$tot count($_FILES['image']['name']); // cantidad de archivos a subir
for($i=0;$i<$tot;$i++){
move_uploaded_file ($_FILES['image']['tmp_name'][$i], $dir.$_FILES['image']['name'][$i]); //subimos las imagenes
}

//recepcion de datos
$nombre=$_POST['nombre'];
$telefono=$_POST['telefono'];
$email=$_POST['email'];
$para='[email protected]';
$asunto='formulario web';
$mensaje='datos recibidos

nombre:'
.$nombre.'

telefono:'
.$telefono.'

email: '
.$email.'

'
;

$desde='From: mi pagina';
mail($para,$asunto,$mensaje,$desde);
header('Location: respuestaformulario.html');



?>
Si te inserta en la BD a lo mejor es tu $dir
este archivo esta en el mismo directorio raiz que tu carpeta perfiles o subes un nivel?

porque igual podría quedar asi:

Código PHP:
$dir "../perfiles/";
$dir "perfiles/";
$dir "/perfiles/"
Juega con eso a ver que sucede

Saludos
  #11 (permalink)  
Antiguo 13/08/2010, 08:22
 
Fecha de Ingreso: enero-2010
Mensajes: 11
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: enviar formulario con varios archivos

hola, ya probé con &dir="perfiles/" y al final me funcionó.!!

MUCHAS GRACIAS POR LA AYUDA!!!!! :) :) ahora ya podre dormir... :) gracias.
  #12 (permalink)  
Antiguo 13/08/2010, 09:31
 
Fecha de Ingreso: julio-2010
Ubicación: La Ciudad Blanca, Mérida-Yucatán
Mensajes: 375
Antigüedad: 9 años, 4 meses
Puntos: 7
Respuesta: enviar formulario con varios archivos

De nada
estamos para ayudarnos mutuamente, aora si no te molesta me podrias dar algo de karma?!!!

saludos

Etiquetas: enviar, formulario
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 12:44.