Tema: Ayuda pleaze
Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/12/2004, 19:36
Avatar de yoseman
yoseman
 
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 20 años, 4 meses
Puntos: 5
Yo tengo un pequeño script que hace eso más o menos, te lo dejo por si te sirve de ayuda:
Código PHP:
<?php 
$num
=($_GET['id']) ? $_GET['id'] : 1
// esta función recorre el array $_FILES y sube todos los archivos que se hayan podido mandar desde el formulario 
// al directorio especificado, siempre y cuando sea del tipo permitido y no supere el maximo en bytes 
$dir="art/";
$tam=30000;
$tipos="image/gif,image/jpeg,image/pjpeg,image/x-png,application/x-zip-compressed,application/pdf,application/x-gzip";
sube_archivo($dir,$tam,$tipos); 
function 
sube_archivo($directorio,$tam_max,$mime_aceptados
    { 
    
$mime_aceptados=explode(",",$mime_aceptados);
    foreach(
$_FILES as $key=>$value
        {    
        if (
is_array($value) && in_array($_FILES[$key]['type'],$mime_aceptados) && $_FILES[$key]['size']<=$tam_max && is_dir($directorio) && is_writable($diretorio)) 
            { 
            if(!@
move_uploaded_file($_FILES[$key]["tmp_name"],$directorio.$_FILES[$key]["name"])) 
                { 
                echo 
"<br />No se pudó enviar el fichero <b>"$directorio.$_FILES[$key]["name"]."</b> al servidor."
                } 
            else
                {
                echo 
"El archivo <b>"$directorio.$_FILES[$key]["name"]."</b> se subió con éxito<br />"
                }
            } 
        } 
    }
?> 
<form method="post" action="<?=$PHP_SELF?>" enctype="multipart/form-data"> 
Fichero a enviar: 
<? 
for ($i=0;$i<$num;$i++) 
{
?> 
<br> 
<input type="file" name="fichero<?=$i?>"> 
<br> 
<br><?}?> 
<input type="submit" name="enviar" value="Enviar"> 
<br> 
<br> 
</form>
Se supone que vamos leyendo con un foreach el array $_FILES, y lo principal, lo que nos sirve para ir fichero por fichero es preguntar si el valor actual que estamos consultando sigue siendo un array, en cuyo caso es que tenemos un fichero subido.
Código PHP:
if (is_array($value//eso es lo más importante 
Por lo demás sólo he metido tipos aceptados, un bucle que coge una variable pasada por query string y que crea tantos campos para subir ficheros como se pongan al llamar al script. Si no se pasa ninguna variable id al script sólo muestra un campo de envio de fichero.

Código PHP:
$num=($_GET['id']) ? $_GET['id'] : 1; 
<input type="file" name="fichero<?=$i?>">
No sé si estará muy allá, lo pongo más que nada por si te sirve de guía.
__________________
[+]
[+]

Última edición por yoseman; 13/12/2004 a las 19:41