Ver Mensaje Individual
  #7 (permalink)  
Antiguo 20/04/2006, 09:42
Avatar de gachon
gachon
 
Fecha de Ingreso: septiembre-2004
Ubicación: En Google
Mensajes: 462
Antigüedad: 19 años, 7 meses
Puntos: 3
perdona pero si me lo habia leido, es que como ponia
para copy
Código PHP:
copy string origenstring destino 
para move_upload_file
Código PHP:
move_uploaded_file string nombre_archivostring destino 
a lo mejor no lo habia entendido bien, pero al ver lo que tu me has dicho y los ejemplos para ser que si usa los mismos parametros
esta la clase de special; solo he cambiado copy por move_uploada_file
Código PHP:

<?php

    
//----------------------------------------------------------------------------------------------------------CLASE

    
class FileUpLoad {

        
//------------------------------------------------------PROPIEDADES

        
var $directorio;
        var 
$nombre_archivo;
        var 
$repetido;
        var 
$tipos_validos;
        var 
$crea_direcotorios;
        var 
$permisos_direcotorios;
        var 
$max_weight;
        var 
$min_weight;
        var 
$errores;


        
//------------------------------------------------------METODO

        
function InicializaErrores() {

            
$this->errores '';

        }


        
//------------------------------------------------------METODO

        
function AgregaError($error) {

            
$this->errores .= $error;

        }


        
//------------------------------------------------------METODO

        //vasado en el script encontrado en php.net en la función con cabecera (andrei at bizland dot ro 24-Oct-2004 06:33)
        
function CreaDirectorioRecursivo($dir$permisos) {

            if (
file_exists($dir)) return false;

            
preg_match_all('/([^\/]*)\/?/i'$dir$atmp);

            
$base '';

            foreach (
$atmp[0] as $directorio) {

                
$base .= $directorio;
                if((!
file_exists($base)) && (!mkdir($base$permisos))) return false;

            }

            return 
false;
    
        }


        
//------------------------------------------------------METODO

        
function ExisteArchivo($nombre_archivo) {

            if(
$this->nombre_archivo$nombre_archivo $this->nombre_archivo;

            switch(
$this->repetido) {

                
//sobreescribir
                
case 1: {

                    
$this->nombre_archivo $nombre_archivo;
                    break;

                }
                
//copiar con nuevo nombre
                
case 2: {

                    
$array_partes explode('.'$nombre_archivo);

                    if((
count($array_partes)) > 1) {

                        
$extension '.' implode('.'array_slice($array_partes1));
                        
$nombre $array_partes[0];

                    }
                    else {

                        
$extension '';
                        
$nombre $nombre_archivo;

                    }

                    
$nombre_temp $nombre $extension;
                    
$i 0;
                    while(
file_exists($this->directorio $nombre_temp)) {

                        
$nombre_temp $nombre '_' $i $extension;
                        
$i++;

                    }

                    
$this->nombre_archivo $nombre_temp;

                    break;

                }
                
//abortar si el fichero existe
                
default : {

                    if(
file_exists($this->directorio $nombre_archivo)) return false;

                    return 
true;
                    break;

                }

            }

            return 
true;

        }


        
//------------------------------------------------------METODO

        
function CrearDirectorios($permisos 0777) {

            
$this->crea_direcotorios true;
            
$this->permisos_directorios $permisos;
            return 
true;

        }


        
//------------------------------------------------------METODO

        
function NombreDeArchivo($nombre) {

            
$this->nombre_archivo $nombre;
            return 
true;

        }


        
//------------------------------------------------------METODO

        
function TiposValidos($array_tipos) {

            if(
is_array($array_tipos)) $this->tipos_validos $array_tipos;
            return 
false;

        }


        
//------------------------------------------------------METODO

        
function PesoMaximo($peso) {

            
$this->max_weight $peso 1024;
            return 
true;

        }



        
//------------------------------------------------------METODO

        
function PesoMinimo($peso) {

            
$this->min_weight $peso 1024;
            return 
true;

        }



        
//------------------------------------------------------METODO

        
function SiArchivoExiste($repetido) {

            
$this->repetido $repetido;
            return 
true;

        }


        
//------------------------------------------------------METODO

        
function EstableceDirectorio($dir) {

            
//si no existe el directorio, deseamos crearlo, y lo creamos satisfactoriamente, o si el directorio existe y es escribible
            
if(((!file_exists($dir)) && ($this->crea_direcotorios == 1) && ($this->CreaDirectorioRecursivo($dir0777))) || ((is_dir($dir)) && (is_writable($dir)))) {

                
$this->directorio $dir;

            }

            return 
true;

        }


        
//------------------------------------------------------METODO

        
function Subir($form_file_name$permisos 0777$nombre '') {

            
$this->InicializaErrores();

            if(!empty(
$nombre)) $this->NombreDeArchivo($nombre);

            if(!isset(
$_FILES[$form_file_name])) {

                
$this->AgregaError('No se ha recibido ningún archivo.<br>');

            }
            
            if(!
$this->ExisteArchivo($_FILES[$form_file_name]['name'])) {

                
$this->AgregaError('El archivo ya existe y no está habilitada la opción de sobreescribir.<br>');

            }

            if(
$_FILES[$form_file_name]['error'] != 0) {

                
$this->AgregaError('El archivo no se ha recibido correctamente.<br>');

            }

            if(!
$this->directorio) {

                
$this->AgregaError('No tiene permisos para escribir en el directorio seleccionado o para crearlo.<br>');

            }

            if((
$this->min_weight) && ($_FILES[$form_file_name]['size'] < $this->min_weight)) {

                
$this->AgregaError('El tamaño del archivo no supera el mínimo permitido.<br>');

            }

            if((
$this->max_weight) && ($_FILES[$form_file_name]['size'] > $this->max_weight)) {
    
                
$this->AgregaError('El tamaño del archivo es superior al máximo permitido.<br>');

            }

            if((
$this->tipos_validos) && (!in_array($_FILES[$form_file_name]['type'], $this->tipos_validos))) {

                
$this->AgregaError('El tipo de archivo enviado no es válido.<br>');

            }

            if((empty(
$this->errores)) && (!move_upload_file($_FILES[$form_file_name]['tmp_name'], $this->directorio $this->nombre_archivo))) {

                
$this->AgregaError('No se ha podido subir el archivo, revise los errores previos.<br>');

            }

            if(!empty(
$this->errores)) return $this->errores;

            
chmod($this->directorio $this->nombre_archivo$permisos);

            return 
true;

        }

    }

?>
y asin llamo a la clase;
Código PHP:
$obj_1 = new FileUpLoad;

    
//añadirmos la opción para la creación de directorios
    //especificando los permisos que le asignaremos
    
$obj_1->CrearDirectorios(0777);

    
//establecemos el directorio dónde subiremos las fotos
    //damos por hecho que la variable $id ya la habíamos obtenido previamente
    
$obj_1->EstableceDirectorio("imagenes/$ult_id/");

    
//en el caso de que el archivo exita lo reombramos
    
$obj_1->SiArchivoExiste(2);



    
//declaramos los tamaños mayor y menor (en kb) para cada archivo a subir
    
$obj_1->PesoMaximo(250);
    
    
// leer del archvio temporal .. el binario subido.
// "rb" para Windows .. Linux parece q con "r" sobra ...
$obj_1->subir('Foto1'0773,"$nombre1");
$obj_1->subir('Foto2'0773,"$nombre2");
$obj_1->subir('Foto3'0773,"$nombre3");
$obj_1->subir('Foto4'0773,"$nombre4");
$obj_1->subir('Foto5'0773,"$nombre5");
$obj_1->subir('Foto6'0773,"$nombre6");
$obj_1->subir('Foto7'0773,"$nombre7");
$obj_1->subir('Foto8'0773,"$nombre8");
$obj_1->subir('Foto9'0773,"$nombre9");
$obj_1->subir('Foto10'0773,"$nombre10"); 
bueno aqui esta el codigo a ver si podeis ayudarme
saludos