Foros del Web » Programando para Internet » PHP »

Subir multiples archivos.

Estas en el tema de Subir multiples archivos. en el foro de PHP en Foros del Web. Buenas gente... Mirar tengo un problemilla, estoy intentando hacer un script, que me suba varios ficheros a un directorio, pero me encuentro con varios problemas. ...
  #1 (permalink)  
Antiguo 07/03/2007, 19:23
 
Fecha de Ingreso: abril-2006
Mensajes: 218
Antigüedad: 18 años
Puntos: 0
Subir multiples archivos.

Buenas gente...

Mirar tengo un problemilla, estoy intentando hacer un script, que me suba varios ficheros a un directorio, pero me encuentro con varios problemas.

Mi primer problema, es que tengo esto:

Código PHP:

$alquiler_consulta 
mysql_query("SELECT id,precio,zona,descripcion,codigo FROM $sql_tabla2 order by id") or die("No se pudo realizar la consulta a la Base de datos");

$resultados mysql_fetch_array($alquiler_consulta);

if (isset(
$_GET['code'])){

echo 
"<form Enctype='Multipart/Form-Data' method='post' action='$pag?lang=".$idiomas[$idioma]['idioma']."&accion=hacernuevo&code=".$resultados[codigo]."' name='creando' id='creando'>";
echo <<< HTML
<input type='file' id='userfile[]' class='form' >
<input type='file' id='userfile[]' class='form' >
<input type='file' id='userfile[]' class='form' >
<input type='file' id='userfile[]' class='form' >
<input type='file' id='userfile[]' class='form' >
<input type='file' id='userfile[]' class='form' >
<input type='file' id='userfile[]' class='form' >
<input type='file' id='userfile[]' class='form' >
HTML;
echo 
"</form>";


exactamente 8 campos files, lo que pasa es que algunas veces los voy a usartodos y otras veces voy a usar 3, 2, 5, 1, 4... Es decir, se que nunca más de 8, pero de ahi hacia abajo cualquier posibilidad.

He podido hacer algo, pero depende totalmente del número que le meta de repeticiones y no me sube los archivos. Si que me crea la carpeta y me da los permisos, pero no me sube las imágenes.

Aquí lo dejo:
Código PHP:
if ($_GET['accion']=="hacernuevo")
{    

$code $_GET['code'];
    require (
"ftp_func.php");
        
ftp_chdir($id_con'/www/villas/alquileres/');
        
ftp_mkdir($id_con$code);
        
ftp_site($id_con"CHMOD 0777 $code");
        
ftp_close($id_con);

$cant 2//Número de archivos a Subir 
        
$ruta "/www/villas/alquileres/".$code."/";
        
$MAX_FILE_SIZE5242880;

        for(
$i=0$i<$cant$i++) 
        { 

            if  (
is_uploaded_file($_FILES['userfile']['tmp_name'][$i])) 
            { 
            
                if ((
$_FILES['userfile']['tmp_name'][$i] != "") AND ($_FILES['userfile']['tmp_name'][$i] != "none") AND ($_FILES['userfile']['size'][$i] != 0)) 
                {
                
                    if (
$_FILES['userfile']['size'][$i]<=$MAX_FILE_SIZE
                    {
                     
                        
$extension explode(".",$_FILES['userfile']['name']); 
                        
$num count($extension)-1
                
                        if ((
$extension[$num] != "jpg") or ($extension[$num] != "jpeg") or ($extension[$num] != "gif") or ($extension[$num] != "bmp")) { 
                    
                            
header ("Location: $pag?lang=".$idiomas[$idioma]['idioma']."&accion=nuevo&error=7");
                            exit;
                    
                        } else { 
                    
                            
$archivo $code."_".$i.".".$extension[$num];
                                            
                            
move_uploaded_file($_FILES['userfile']['tmp_name'][$i], $ruta.$archivo); 
        
                        } 
                
                    } else { 
                    
                            
header ("Location: $pag?lang=".$idiomas[$idioma]['idioma']."&accion=nuevo&error=4");
                            exit;
                    
                    }
                    
                    
                }
                
            }
        
            }

Si alguien me pudiera ayudar por favor... porque voy muy perdido.

Muchas gracias.

Entonces mi duda viene en como puedo hacer el script...

Última edición por erponcios; 07/03/2007 a las 20:05
  #2 (permalink)  
Antiguo 07/03/2007, 20:11
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: Subir multiples archivos.

Antes que nada, cuando surgen esta clase de problemas, tenés que agregar esto:

error_reporting(E_ALL);

en la primera línea del programa, así te asegurás de ver todos los errores y advertencias que PHP genera.

Por otro lado, también deberías hacer un var_dump() de $_POST y de $_FILES, porque no creo que la variable llegue como

$_FILES['userfile']['tmp_name'][$i]

sino que me parece que llegará como

$_FILES['userfile'][$i]['tmp_name']

o algo similar.


Fijate en eso.


Saludos.
  #3 (permalink)  
Antiguo 07/03/2007, 20:24
 
Fecha de Ingreso: abril-2006
Mensajes: 218
Antigüedad: 18 años
Puntos: 0
Re: Subir multiples archivos.

Notice: Undefined index: userfile in /home/wklifbif/public_html/villas/gestion_alquileres.php on line 317

Me da ese error todo el rato.

En la línea 317, es la primera vez que llamo a $_FILES['userfile']['tmp_name'][$i].

He probado también con: $_FILES['userfile'][$i]['tmp_name'] y nada :(

Porque me pasa esto?
  #4 (permalink)  
Antiguo 07/03/2007, 21:01
 
Fecha de Ingreso: abril-2006
Mensajes: 218
Antigüedad: 18 años
Puntos: 0
Re: Subir multiples archivos.

El tema de que no me coga valor, solucionado con HTTP_POST_FILES si que me va, y me devuelve:

array(8) { [0]=> string(14) "/tmp/php0ksrr9" [1]=> string(14) "/tmp/phpmYFloL" [2]=> string(14) "/tmp/phpzekBIp" [3]=> string(14) "/tmp/phpG0eTi7" [4]=> string(14) "/tmp/phpivmcTO" [5]=> string(14) "/tmp/phpXwAwtw" [6]=> string(14) "/tmp/phpWJRYDf" [7]=> string(14) "/tmp/phpJalsOY" }

El tema es que no me sube nada y no me da ningun tipo de error :O
  #5 (permalink)  
Antiguo 08/03/2007, 11:53
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: Subir multiples archivos.

HTTP_POST_FILES y FILES son prácticamente iguales, así que no puede estar ahí el error.

var_dump() de $_FILES no puede nunca ser como lo pegás, ya que no tenés los índices que corresponden al tipo de archivo, no al nombre.

Por favor pegá la salida completa de

var_dump($_FILES), entr bbcodes [code] para que se vea más claro.
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 01:02.