Ver Mensaje Individual
  #9 (permalink)  
Antiguo 22/01/2011, 19:15
marco64yes
 
Fecha de Ingreso: septiembre-2010
Mensajes: 350
Antigüedad: 13 años, 6 meses
Puntos: 9
Respuesta: como saco variable de esta clase ?

nombre de la clase: cUploadFile.php

Código PHP:
<?php 
class Upload_File
    var 
$file_extensions//Extensiones permitidas  
    
var $type_uploads=0;//Tipo dearchivos que se subirán al server. PARA MAYOR INFORMACIÓN CONSULTAR LA TABLA 
    
var $directory="uploads"//Directorio donde colocaremos los archivos despues de ser subidos (uploaded). Por default llamada uploads 
    
var $max_filesize=2097152//Máximo tamaño que se permite en el upload, por default 2M de la configuracion por default de php.ini 
    
var $file_type;//Tipo de archivo 
    
var $file_name;//Nombre de archivo 
    
var $file_size;//Tamaño del archivo 
    
var $temp_filename;//Nombre del archivo temporal 
    
var $file//Nombre del archivo con todo y ruta 
     
    /* 
     TABLA DE VALORES DE TIPOS DE ARCHIVOS 
     0 = INDISTINTO TXT: text/plain  
     1 = IMAGENES (JPEG/PNG/GIF) 
     2 = DOCUMENTOS DE WORD (DOC, RTF)   application/msword 
     3 = HOJAS DE CALCULO DE EXCEL (XLS) application/vnd.ms-excel  
     4 = PRESENTACIONES DE POWER POINT (PPT) application/vnd.ms-powerpoint  
     5 = PUBLICACIONES DE PUBLISHER application/vnd.ms-publisher  
     6 = ZIP FILES application/x-zip-compressed  
     7 = TODOS LOS ANTERIORES 
    */ 
    
                /*
            "docx" => "application/vnd.openxmlformats-officedocument.wordprocessingml.document", 
         "ppt" => "application/mspowerpoint", 
         "pptx" => "application/vnd.openxmlformats-officedocument.presentationml.presentation", 
         "xls" => "application/msexcel", 
         "xlsx" => "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",*/ 
     
    
function Upload_File($tipo_upload=0,$path="",$max_file=""){ 
         
        if (!(empty(
$max_file))){  
            
$this->max_filesize=$max_file
        }     
        if (!(empty(
$path))){ 
            
$this->directory=$path
        } 
        
//Si no existe el directorio lo creamos: 
        
if ( (!(file_exists($this->directory))) || (!(is_dir($this->directory))) ){ 
                
mkdir($this->directory); 
        }     

        switch (
$tipo_upload){ //Determinar los tipos de archivos permitidos dependiendo de la TABLA TIPOS DE ARCHIVO 
            /*case 0: 
                   break; */
            
case 1://se subirán imágenes 
                   //$this->file_extensions=array ("image/pjpeg","image/x-png","image/jpeg","image/png","image/gif"); 
                   
$this->file_extensions=array ("image/bmp","image/gif","image/jpeg","image/pjpeg","image/png","image/x-png"); 
                   break; 
            case 
2://se subirán documentos 
                   
$this->file_extensions=array ("image/bmp","image/gif","image/jpeg","image/pjpeg","image/png","image/x-png","application/msword","application/vnd.ms-excel","application/vnd.ms-powerpoint","application/vnd.ms-publisher","application/x-zip-compressed","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.openxmlformats-officedocument.presentationml.presentation","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
                   break;        
           
                 
        } 
        
$this->type_uploads=$tipo_upload
    } 
     
    function 
PutFileUploaded($file){ 
        
$validated=FALSE
        
//Validar si el archivo existe en la matriz $_FILES 
        
if (!(isset($_FILES[$file]))){ 
            
$this->onError(1); 
        }     
        
//Guardar como atributo del objeto nombre del archivo, tamaño y nombre del temporal 
        
$this->file_type $_FILES[$file]['type'];   
        
$this->file_name $_FILES[$file]['name'];   
        
$this->file_size $_FILES[$file]['size'];  
        
$this->temp_filename $_FILES[$file]['tmp_name']; 
         
        
//Validar el tamaño del archivo 
        
if ( ($this->file_size <= 0) || ($this->file_size $this->max_filesize) ){ 
             
$this->onError(2); 
        }     
         
        
//Validar de acuerdo al tipo permitido de archivos correspone al que se pretende subir 
        
switch ($this->type_uploads){ //Determinar los tipos de archivos permitidos dependiendo de la TABLA TIPOS DE ARCHIVO 
           /* case 0: 
                   $validated=true; //No hay regla de validación por lo tantoo automáticamente es válido 
                   break; */
            
case 1://se busca que el tipo de archivo concuerde con el tipo 1 (IMAGENES) 
                  
foreach ($this->file_extensions as $extension){ 
                       if (
$extension == $this->file_type){ 
                        
$validated=true
                        break; 
                    } 
                   } 
                   break;    
            case 
2://se busca que el tipo de archivo concuerde con el tipo 2 (DOCUMENTOS) 
                   
foreach ($this->file_extensions as $extension){ 
                       if (
$extension == $this->file_type){ 
                        
$validated=true
                        break; 
                    } 
                   } 
                   break;
           
        }     
        if (
$validated){// Si paso la prueba de validación 
            
$filename basename ($this->file_name); //Obtener el nombre del archivo 
              
$this->file $this->directory "/"$filename//Formar la cadena del Archivo con todo y ruta 
            
$this->file=str_replace(" ","_",$this->file);//Reemplazamos los espacios en blanco por guiones bajos. 
            //Si ya hay un archivo con ese nombre lo renombramos 
            
if (file_exists($this->file)){ 
                list(
$path_and_file,$extension) = explode(".",$this->file); //Separamos el nombre del archivo archivo en partes 
                
$unique=false
                
$iteration=1
                while (!(
$unique)){ //Realizaremos el ciclo hasta encontrar un nuevo nombre de archivo mas un consecutivo 
                   
$provisional_filename=$path_and_file "_" $iteration "."$extension
                   if (!(
file_exists($provisional_filename))){//Si en esa iteración el nombre de archivo provisonal dado no existe,asignarlo a como nombre definitvo de archivo 
                           
$this->file=$provisional_filename
                           
$this->nuevoAtributo $filename basename ($provisional_filename);
                            
$unique=true
                           
                   }
//Si no seguimos iterando hadta encontrar el nombre unico 
                   
$iteration++; 
                } 
            } 
             
            if(
is_uploaded_file($this->temp_filename)){ //Si el archivo es un upload entonces se procede a moverlo 
                        
                
if (@move_uploaded_file($this->temp_filename,$this->file)){ //Si se movió correctamente regresar el  nombre del archivo 
                    
return $this->file
                } 
                else{ 
                    
$this->onError(5); 
                }     
            } 
            else{ 
                
$this->onError(4); 
            }     
             
         } 
         else{ 
             
$this->onError(3); 
         } 
         
    } 
      
      
      
     function 
onError($errorcode){ 
         switch (
$errorcode){ 
            case 
1://No existe el archivo en $_FILES[] 
                    
exit("<i>No se ha subido un archivo con el identificador dado para la funcion PutFileUploaded.</i>"); 
            case 
2://El tamaño del archivo es muy grande o no contiene nada 
                    
exit("<i>No se ha podido subir el archivo porque excede del tama&ntilde;o permitido.</i>");         
            case 
3//El tipo de archivo no es váliddo. No tiene permiso opara subir ese tipo de archivos 
                    
exit("<i>No se ha podido subir el archivo porque el tipo no est&aacute; autorizado.</i>");         
            case 
4//El archivo dado no fue subido al server a través de un upload de HTTP 
                    
exit("<i>Operaci&oacute;n no válida porque el archivo dado no fue subido v&iacute;a HTTP.</i>");         
            case 
5:    //El archivo no pudo ser movido al directorio deseado 
                    
exit("<i>Operaci&oacute;n no v&aacute;lida porque no se ha podido guardar el archivo.</i>");                 
        } 
     } 
     

?>
Nombre del archivo que adjunta example_uf.php
Código HTML:
<?php 
include ("cUploadFile.php");//incluimos la clase 
?> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<title>Documento sin t&iacute;tulo</title> 
</head> 

<body> 
<!-- 
Trazamos un formulario y un objeto FILE de HTML. 
--> 
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post" enctype="multipart/form-data" name="form1"> 
  <table width="200" border="1"> 
    <tr> 
      <td><input type="file" name="file"></td> 
    </tr> 
    <tr> 
      <td><input type="submit" name="Submit" value="Enviar"></td> 
    </tr> 
  </table> 
</form> 
<?php 
if (isset($_FILES["file"])){ 
    $my_upload = new Upload_File(2,"docs");//se subirán archivos de Word con extension DOC y RTF en la carpeta DOCS 
    $newfile=$my_upload->PutFileUploaded("file"); 
    echo 'El archivo se subio correctamente, presione <a href="'. $newfile .'">aqui</a> para descargarlo';//Un link para mostrar que el archivo 
}     
?> 
<p>&nbsp;</p> 
</body> 
</html>