Foros del Web » Programando para Internet » PHP »

contar numero de input type file enviados en un formulario

Estas en el tema de contar numero de input type file enviados en un formulario en el foro de PHP en Foros del Web. Hola! Estoy intentando obtener el numero de input tipo file que se envian a traves de un formulario para ir comprobando que su extension sea ...
  #1 (permalink)  
Antiguo 08/09/2009, 04:27
pbt
 
Fecha de Ingreso: marzo-2009
Mensajes: 49
Antigüedad: 15 años, 1 mes
Puntos: 0
contar numero de input type file enviados en un formulario

Hola!
Estoy intentando obtener el numero de input tipo file que se envian a traves de un formulario para ir comprobando que su extension sea valida y posteriormente guardarlas en el servidor, el usuario es el que decide cuantos envia a traves del link "Subir otra imagen"

He intentado varios metodos algunos encontrados por aqui pero no me funcionan para este tipo de input (para los de tipo text si).

Codigo que tengo

Formulario
Cita:
<form action="alta_camada2.php" method="post" enctype="multipart/form-data" onSubmit="return ValidarForm4()" id="form4" name="form4">

<table width="100%" border="0" cellspacing="0" cellpadding="0"><tbody>
<tr>
<td>
Nombre de la madre<br />
<input id="nombre_madre" name="nombre_madre" size="50" maxlength="50" type="text" class="inputbox" /><br />
Foto de la madre<br />
<input name="foto[]" type="file" id="foto[]" size="50" maxlength="50" /><br/>
Nombre del padre<br />
<input id="nombre_padre" name="nombre_padre" size="50" maxlength="50" type="text" class="inputbox" /><br />
Foto del padre<br />
<input name="foto[]" type="file" id="foto[]" size="50" maxlength="50" /><br/>
<p>Nacimiento de los cachorros</p>
<label for="dia">Día</label> <input size="2" maxlength="2" name="dia_nac" id="dia_nac" value="01" />
<label for="mes">Mes</label> <input size="2" maxlength="2" name="mes_nac" id="mes_nac" value="01" />
<label for="anio">Año</label> <input size="4" maxlength="4" name="anio_nac" id="anio_nac" value="0001" />
</td>
<td>
<p>Raza de los cachorros</p>
<select id="opciones4" name="opciones4" class="inputbox">
<option value="" selected="selected">Seleccione la raza a la que pertenecen los cachorros</option>
<?php
$query15 = 'select raza from razas';
$resultado15 = mysql_query($query15); //ejecuto la consulta;
while($damefila15=mysql_fetch_array($resultado15, MYSQL_ASSOC))
{
?><option value="<?php echo $damefila15['raza']?>"><?php echo $damefila15['raza']?></option>

<?php
}
mysql_free_result($resultado15);
?>
</select><br/>
<p>Color <input id="color" name="color" size="20" maxlength="20" type="text" class="inputbox" /></p>
<p>Foto de los cachorros</p>
<input name="foto[]" type="file" id="foto[]" size="50" maxlength="50" /><br/>
<a href="#" onClick="addCampo()">Subir otra imagen</a>
</td>
</tr>
<tr>
<td colspan="2" align="center"><br/>
<input type="submit" name="Submit" value="Enviar" /><br />
</td>
</tr>
</tbody>
</table>
</form>
Codigo php
Cita:
//comprobacion tipo archivo
$extensiones=array('html','exe','php','swf','mp3', 'asp', 'js', 'txt'); //extensiones no admitidas
$num_ext = count($extensiones); //cuenta el num de elementos del array extensiones
if (isset($_POST['foto']))
{
$foto = $_POST['foto']; //declaro la var $foto
$num_fotos = count($foto); //cuento el numero de fotos enviadas
for($j=0;$j<$num_fotos;$j++) //para recorrer la fotos enviadas
{
for($i=0; $i<=$num_ext; $i++) //recorro el array con las extensiones
{
if($extensiones[$i] == explode(".",$_FILES['foto']['name'][$j])) //si alguna extension coincide con el de la foto comprobada en ese momento
{
?><script>alert("Tipo de Archivo no admitido <?php echo $_FILES['foto']['name'][$j] ?> . Intentelo de nuevo");</script>
<?php exit;
}
}
}
}
Gracias anticipadas por la ayuda
  #2 (permalink)  
Antiguo 08/09/2009, 04:44
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: contar numero de input type file enviados en un formulario

Trata a ver si te ayuda esto
Código PHP:
Ver original
  1. count($_FILES);
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 08/09/2009, 04:53
pbt
 
Fecha de Ingreso: marzo-2009
Mensajes: 49
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: contar numero de input type file enviados en un formulario

Siempre me dice que se han enviado 1.
  #4 (permalink)  
Antiguo 08/09/2009, 05:02
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: contar numero de input type file enviados en un formulario

Haz esto y escribe lo que te trae
Código PHP:
Ver original
  1. var_dump($_FILES);
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 08/09/2009, 05:12
pbt
 
Fecha de Ingreso: marzo-2009
Mensajes: 49
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: contar numero de input type file enviados en un formulario

Cita:
array(1)
{
["foto"]=> array(5)
{ ["name"]=> array(3)
{ [0]=> string(22) "52401,1165354158,1.jpg"
[1]=> string(23) "191008,1223759768,2.jpg"
[2]=> string(23) "146584,1224168971,9.jpg" }
["type"]=> array(3)
{ [0]=> string(10) "image/jpeg"
[1]=> string(10) "image/jpeg"
[2]=> string(10) "image/jpeg" }
["tmp_name"]=> array(3)
{ [0]=> string(21) "C:\wamp\tmp\php7A.tmp"
[1]=> string(21) "C:\wamp\tmp\php7B.tmp"
[2]=> string(21) "C:\wamp\tmp\php7C.tmp" }
["error"]=> array(3)
{ [0]=> int(0)
[1]=> int(0)
[2]=> int(0) }
["size"]=> array(3)
{ [0]=> int(95437)
[1]=> int(33562)
[2]=> int(59793) }
}
}
  #6 (permalink)  
Antiguo 08/09/2009, 05:14
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: contar numero de input type file enviados en un formulario

Ok de esta forma entonces lo puedes lograr
Código PHP:
Ver original
  1. count($_FILES["foto"]);
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 08/09/2009, 05:30
pbt
 
Fecha de Ingreso: marzo-2009
Mensajes: 49
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: contar numero de input type file enviados en un formulario

Vale, mea culpa,
El problema era mio que estaba obcecada en poner $_POST en vez de $_FILES, con razon funcionaba en los tipo text y no en los tipo file

Muchas gracias abimaelrc
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 13:18.