Foros del Web » Programando para Internet » PHP »

Subir mas de un archivo - php

Estas en el tema de Subir mas de un archivo - php en el foro de PHP en Foros del Web. Hola gente del php, Como les va? Primero que nada les pongo el corto codigo que utilizo. Codigo html: Código HTML: <form action= "upload" enctype= ...
  #1 (permalink)  
Antiguo 16/07/2009, 08:51
 
Fecha de Ingreso: septiembre-2008
Mensajes: 91
Antigüedad: 15 años, 7 meses
Puntos: 0
Subir mas de un archivo - php

Hola gente del php, Como les va?

Primero que nada les pongo el corto codigo que utilizo.
Codigo html:
Código HTML:
<form action="upload" enctype="multipart/form-data" method="post" id="frmMultiple">
		imagen:<input  type="file"  name="imagen[]"  /><br/>
	         
                imagen:<input  type="file"  name="imagen[]"/><br/>

                imagen:<input  type="file"  name="imagen[]"/><br/>
		
		<input  type="submit" value="Upload" />		
</form> 
Codigo php:
Código PHP:
$i 0;  
  while (
$_FILES['imagen']['name'][$i]){
          
$destination=$_FILES['imagen']['name'][$i];
      if(!
move_uploaded_file($_FILES['imagen']['tmp_name'][$i], $destination))
        echo 
'no';
      
$i++;
  } 
El problema es que solo sube un archivo.
Sube siempre el que ponga en el primer campo y el script no genera error.

Me pueden ayudar a solucionar esto, por favor?

Muchas gracias, saludos.
__________________
Hay que vencer!!!
  #2 (permalink)  
Antiguo 16/07/2009, 09:53
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Subir mas de un archivo - php

Creo que por motivos de seguridad no te permite subir una cantidad invariable de archivos, no lo he probado.

Intenta en vez de utilizar imagen[] usar: imagen1, imagen2, imagen3... y un input hidden con el total, de todas formas $_FILES siempre devuelve un array. has la prueba y me avisas, la verdad nunca se me había presentado esa necesidad.

El código quedaría mas u menos así:

Código PHP:

$total
=intval($_POST['total_imagenes']);
    for (
$j=0;$j<$total;$j++){
 
    
              
$destination=$_FILES['imagen'.$j];
          if(!
move_uploaded_file($_FILES['imagen'.$j]['tmp_name'], $destination))
            echo 
'no';
          
$i++;
      
    } 
  #3 (permalink)  
Antiguo 16/07/2009, 12:34
Avatar de xempro  
Fecha de Ingreso: marzo-2007
Ubicación: Chile
Mensajes: 222
Antigüedad: 17 años, 1 mes
Puntos: 6
Respuesta: Subir mas de un archivo - php

No es necesario pasar en un campo hidden una variable con el total de los ficheros, eso lo obtienes a través de un count($_FILES).

Código PHP:
<?php
    
// Ejemplo...
    
for($c1=1$c1<=count($_FILES); $c1++){
        
$fileName="imagen$c1";
        if(
$_FILES[$fileName]['error']==0)
            echo 
"$fileName=OK<br />";
        else
            echo 
"$fileName=NOK<br />";
    }
?>
  #4 (permalink)  
Antiguo 16/07/2009, 14:54
 
Fecha de Ingreso: septiembre-2008
Mensajes: 91
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Subir mas de un archivo - php

Uhhh, muchas gracias, ahora lo pruebo y les comento.
__________________
Hay que vencer!!!
  #5 (permalink)  
Antiguo 16/07/2009, 15:11
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Subir mas de un archivo - php

Cita:
Iniciado por xempro Ver Mensaje
No es necesario pasar en un campo hidden una variable con el total de los ficheros, eso lo obtienes a través de un count($_FILES).
Cierto!!!, tienes razón!
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 15:28.