Foros del Web » Programando para Internet » PHP »

como saco variable de esta clase ?

Estas en el tema de como saco variable de esta clase ? en el foro de PHP en Foros del Web. Hola que tal amigos.. tengo una duda, encontre en esta pagina: http://www.forosdelweb.com/f18/clase...ploads-267363/ una clase, la cual adjunta archivos, lo que hago es guardar la ruta,etc ...
  #1 (permalink)  
Antiguo 22/01/2011, 17:04
 
Fecha de Ingreso: septiembre-2010
Mensajes: 350
Antigüedad: 13 años, 5 meses
Puntos: 9
Exclamación como saco variable de esta clase ?

Hola que tal amigos.. tengo una duda, encontre en esta pagina:

http://www.forosdelweb.com/f18/clase...ploads-267363/

una clase, la cual adjunta archivos, lo que hago es guardar la ruta,etc a una bd.
Pero no logro no se como obtener el resultado del nombre final de esa clase..

ejemplo: solo quiero esto... document_nuevo.doc o imagen_nombre.jpg solo el resultado final

Como hago para sacar el resultado ?
la variable que me interesa es esta:

var $file_name;//Nombre de archivo

que mas abajo, realiza un proceso:

Código PHP:
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
                           
$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
                } 
para ver si no esta repetido el nombre
pero de ahi $file_name se convierte en otras cosas, como hago para obtener solo el nuevo resultado del nombre ??? ya que no quiero guardar en la base de datos toda la ruta para que la vea el cliente :S

espero me puedan ayudar

como lo saco $mivaribale->file_name; ??
  #2 (permalink)  
Antiguo 22/01/2011, 17:10
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 6 meses
Puntos: 80
Respuesta: como saco variable de esta clase ?

Para sacar en nombre de un atributo en una clase debes tener una instancia de la misma.
Supongo que en algun lugar hiciste
$instancia = new Upload_File();
en este caso como los atributos están con el modificador var por ser realizadas para php 4 equivale al modificador public de php 5 por lo cual puedes extraer el valor de cualquier variable de la siguiente forma:
$nombre = $instancia->$file_name;

Y así con cualquiera del resto de los atributos (variables).
Ahora si te refieres a este variable
$filename = basename ($this->file_name)

Lo que te queda es poner otro atributo a la clase y luego extraerlo como cualquier otro.
Código PHP:
Ver original
  1. $this->nuevoAtributo = $filename = basename ($this->file_name);
  2. // y luego como cualquier otro lo lees
  3. echo  $instancia->nuevoAtributo;

Saludos
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp
  #3 (permalink)  
Antiguo 22/01/2011, 17:41
 
Fecha de Ingreso: septiembre-2010
Mensajes: 350
Antigüedad: 13 años, 5 meses
Puntos: 9
Exclamación Respuesta: como saco variable de esta clase ?

Cita:
Iniciado por portalmana Ver Mensaje
Para sacar en nombre de un atributo en una clase debes tener una instancia de la misma.
Supongo que en algun lugar hiciste
$instancia = new Upload_File();
en este caso como los atributos están con el modificador var por ser realizadas para php 4 equivale al modificador public de php 5 por lo cual puedes extraer el valor de cualquier variable de la siguiente forma:
$nombre = $instancia->$file_name;

Y así con cualquiera del resto de los atributos (variables).
Ahora si te refieres a este variable
$filename = basename ($this->file_name)

Lo que te queda es poner otro atributo a la clase y luego extraerlo como cualquier otro.
Código PHP:
Ver original
  1. $this->nuevoAtributo = $filename = basename ($this->file_name);
  2. // y luego como cualquier otro lo lees
  3. echo  $instancia->nuevoAtributo;

Saludos
Hola!!!
Muchas gracias por la pronta respuesta estube analizandola pero me quedan unas dudas,.. mira en este codigo, yo hice:

en donde dice

///////// AQUI LO PUSE
$this->nuevoAtributo = $filename = basename ($this->provisional_filename);
////////



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
                           
$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 
            ///////// AQUI LO PUSE 
$this->nuevoAtributo $filename basename ($this->provisional_filename);
////////   
       
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>");                 
        } 
     } 
     

?>

en donde dice

///////// AQUI LO PUSE
$this->nuevoAtributo = $filename = basename ($this->provisional_filename);
////////

esta lo que me dijiste segun la variable que creo yo ya tiene el nombre final..

y en la parte donde imprimo y quiero guardarlo en mi bd, la cual obviamente no esta dentro de la clase puse como dijiste:

echo $instancia->nuevoAtributo;

pero no me trae nada :S

esta bien lo que hice y donde lo puse ??

espoer me puedas ayudar amigos porfavor!!!!!

gracias!!

Última edición por marco64yes; 22/01/2011 a las 17:55
  #4 (permalink)  
Antiguo 22/01/2011, 17:57
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 6 meses
Puntos: 80
Respuesta: como saco variable de esta clase ?

o usas
Código PHP:
Ver original
  1. $this->nuevoAtributo = $filename = basename ($this->file);
  2. // o usas
  3. $this->nuevoAtributo = $filename = basename ($provisional_filename);
  4. // pues esta ultima no es una variable que pertenezca a la instancia si no al metodo.
  5. // Fijate que no tiene $this-> delante cuando la carga y tu levantas con this..

Saludos
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp
  #5 (permalink)  
Antiguo 22/01/2011, 18:55
 
Fecha de Ingreso: septiembre-2010
Mensajes: 350
Antigüedad: 13 años, 5 meses
Puntos: 9
Exclamación Respuesta: como saco variable de esta clase ?

Cita:
Iniciado por portalmana Ver Mensaje
o usas
Código PHP:
Ver original
  1. $this->nuevoAtributo = $filename = basename ($this->file);
  2. // o usas
  3. $this->nuevoAtributo = $filename = basename ($provisional_filename);
  4. // pues esta ultima no es una variable que pertenezca a la instancia si no al metodo.
  5. // Fijate que no tiene $this-> delante cuando la carga y tu levantas con this..

Saludos
No me muestra nada :S ya lo hice como me dijiste:

$this->nuevoAtributo = $filename = basename ($provisional_filename);
y con
$this->nuevoAtributo = $filename = basename ($this->file);

y en la otra pagina lo muestro con:

echo $instancia->nuevoAtributo;

pero nada.. que crees que sea ?
  #6 (permalink)  
Antiguo 22/01/2011, 18:59
 
Fecha de Ingreso: septiembre-2010
Mensajes: 350
Antigüedad: 13 años, 5 meses
Puntos: 9
Respuesta: como saco variable de esta clase ?

Código PHP:
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
                    
///AQUI LO PEGO
       
$this->nuevoAtributo $filename basename ($provisional_filename);
////
                           
$unique=true
                           
                   }
//Si no seguimos iterando hadta encontrar el nombre unico 
                   
$iteration++; 
                } 
            } 
Lo puse donde dice:

///AQUI LO PEGO
$this->nuevoAtributo = $filename = basename ($provisional_filename);
////
  #7 (permalink)  
Antiguo 22/01/2011, 19:00
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 6 meses
Puntos: 80
Respuesta: como saco variable de esta clase ?

en la propia clase hace un justo antes de cargar el $this->atributo = ......
Código PHP:
Ver original
  1. echo $provisional_filename;
y ve que te tira...

El directorio tiene los privilegios de escritura y eso...
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp
  #8 (permalink)  
Antiguo 22/01/2011, 19:10
 
Fecha de Ingreso: septiembre-2010
Mensajes: 350
Antigüedad: 13 años, 5 meses
Puntos: 9
Exclamación Respuesta: como saco variable de esta clase ?

Cita:
Iniciado por portalmana Ver Mensaje
en la propia clase hace un justo antes de cargar el $this->atributo = ......
Código PHP:
Ver original
  1. echo $provisional_filename;
y ve que te tira...

El directorio tiene los privilegios de escritura y eso...
No pasa nada,, si lo pongo dentor de la clase, no muestra nada y fuera tampoco :S

o quieres que te muestre todo el codigo aqui, ? esta rapido no se conecta a la bd ni nada, solo copias pegas y ejecutas
  #9 (permalink)  
Antiguo 22/01/2011, 19:15
 
Fecha de Ingreso: septiembre-2010
Mensajes: 350
Antigüedad: 13 años, 5 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> 

  #10 (permalink)  
Antiguo 22/01/2011, 19:15
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 6 meses
Puntos: 80
Respuesta: como saco variable de esta clase ?

Si el echo no tira nada es decir que no se cargo el nombre... ese es el problema...

Como quieras...
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp
  #11 (permalink)  
Antiguo 22/01/2011, 19:17
 
Fecha de Ingreso: septiembre-2010
Mensajes: 350
Antigüedad: 13 años, 5 meses
Puntos: 9
Exclamación Respuesta: como saco variable de esta clase ?

Cita:
Iniciado por portalmana Ver Mensaje
Si el echo no tira nada es decir que no se cargo el nombre... ese es el problema...

Como quieras...
me falto poner el
echo "...".$instancia->nuevoAtributo;

en el expale_uf.php jaja me ganaste la respuesta lo estaba modificando..

pero bueno checalo y me a ver que encuentras :S que no muestra nada
  #12 (permalink)  
Antiguo 22/01/2011, 19:31
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 6 meses
Puntos: 80
Respuesta: como saco variable de esta clase ?

Código PHP:
Ver original
  1. <?php
  2. if (isset($_FILES["file"])){
  3.     $my_upload = new Upload_File(2,"docs");//se subirán archivos de Word con extension DOC y RTF en la carpeta DOCS
  4.     $newfile=$my_upload->PutFileUploaded("file");
  5.     echo 'gggg'.$my_upload->nuevoAtributo;
  6.     echo 'El archivo se subio correctamente, presione <a href="'. $newfile .'">aqui</a> para descargarlo';//Un link para mostrar que el archivo
  7. }
  8. ?>
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp
  #13 (permalink)  
Antiguo 22/01/2011, 19:39
 
Fecha de Ingreso: septiembre-2010
Mensajes: 350
Antigüedad: 13 años, 5 meses
Puntos: 9
Exclamación Respuesta: como saco variable de esta clase ?

Cita:
Iniciado por portalmana Ver Mensaje
Código PHP:
Ver original
  1. <?php
  2. if (isset($_FILES["file"])){
  3.     $my_upload = new Upload_File(2,"docs");//se subirán archivos de Word con extension DOC y RTF en la carpeta DOCS
  4.     $newfile=$my_upload->PutFileUploaded("file");
  5.     echo 'gggg'.$my_upload->nuevoAtributo;
  6.     echo 'El archivo se subio correctamente, presione <a href="'. $newfile .'">aqui</a> para descargarlo';//Un link para mostrar que el archivo
  7. }
  8. ?>
mmm ya lo puse pero no sale nada :S


el codigo: $this->nuevoAtributo = $filename = basename ($provisional_filename);

si esta bien ahi ?

Código PHP:
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++; 
                } 
            } 
  #14 (permalink)  
Antiguo 22/01/2011, 19:41
 
Fecha de Ingreso: septiembre-2010
Mensajes: 350
Antigüedad: 13 años, 5 meses
Puntos: 9
Respuesta: como saco variable de esta clase ?

AAAA NO yayayaya vi si sale jajaja
  #15 (permalink)  
Antiguo 22/01/2011, 19:42
 
Fecha de Ingreso: septiembre-2010
Mensajes: 350
Antigüedad: 13 años, 5 meses
Puntos: 9
Respuesta: como saco variable de esta clase ?

Le puse con este como dijiste:

$this->nuevoAtributo = $filename = basename ($this->file);
y
echo $my_upload->nuevoAtributo;

WOOOOOOOOWWWWWWWWWWWWWWWWW MAESTRO portalmana

muchas gracias man.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!
  #16 (permalink)  
Antiguo 22/01/2011, 19:43
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 6 meses
Puntos: 80
Respuesta: como saco variable de esta clase ?

te cuento que a los archivos que pusiste le agregue solo

echo 'gggg'.$my_upload->nuevoAtributo;
jajjaj yo posteando de nuevo y ya esta jejej

Saludos
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp

Etiquetas: clase, variables
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 13:48.