Ver Mensaje Individual
  #3 (permalink)  
Antiguo 23/03/2009, 11:24
Avatar de SCY-FOX
SCY-FOX
 
Fecha de Ingreso: septiembre-2007
Ubicación: Chile
Mensajes: 139
Antigüedad: 16 años, 7 meses
Puntos: 5
De acuerdo Respuesta: problema para subir archivo

Saludos.

Yo uso este código mucho y me ha funcionado de mil maravillas.

Código PHP:
//Recibo Ficheros - Presupuesto 1

    
$n_file1        =    $_FILES['file1']['name'];
    
$n_file1_tmp    =    $_FILES['file1']['tmp_name'];
    
$n_file1_size    =    $_FILES['file1']['size'];
    
$n_file1_type    =    $_FILES['file1']['type'];
    
    
//DEBUG DE SUBIDA DE FICHERO 1
/*      echo $n_file1."<br />";
    echo $n_file1_tmp."<br />";
    echo $n_file1_size."<br />";
    echo $n_file1_type."<br />";  */

    //Validacion de existencia de fichero 1
    
if ($n_file1 == ''//  SIN FICHERO
        

        
$n_file1             "";
        
$sin_file1         "TRUE"
    } else {
                
$n_file1             renombrar($n_file1);    // CON FICHERO
                
$sin_file1         "FALSE";
                
$fecha_pp1            =    date("Y-m-d");
                    }
    
//Dirección donde se guardaran los archivos cargados
$upload_ficheros        "ficheros/pdfs/";

//Mover direccion temporal de FILE 1 a DIRECCION FINAL en ficheros/pdfs/
if ($sin_file1 != "TRUE")
{
    
$n_path_file1        =    $upload_ficheros $n_file1;    
    
$resultado1        =    move_uploaded_file($n_file1_tmp$n_path_file1);

    if (!
$resultado1)
        {
            echo 
"ERROR: El archivo no pudo ser cargado al servidor";
            exit;
        } 
La función para renombrar archivos es la siguiente:

Código PHP:
//Separa nombre de extension desde el punto. Luego toma extension le añade un punto y renombra con valor rand el nombre del fichero.
//permitiendo subir archivos existentes para otras secciones sin reescribir ficheros en servidor.
function renombrar($nombre_foto)
{
$random=mt_rand(1,15000);
    
$ext substr(strrchr($nombre_foto,"."),1);    
    
$xext ".".$ext;
    
$n basename($nombre_foto$xext);
    
    
$nombre_foto $n "-" $random $xext;

return 
$nombre_foto;

Yo renombro los archivos al momento de subirlos, en caso que hayan varias versiones del mismo pero con distintas fechas. Así puedo tener mi sistema propio de SVN, evito que un usuario sobreescriba algo por error y también puedo controlar extensiones especiales en caso de separar archivos por secciones.

Suerte!

Silla!