Ver Mensaje Individual
  #5 (permalink)  
Antiguo 10/11/2003, 14:15
Avatar de nuevo
nuevo
 
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 21 años, 8 meses
Puntos: 2
... como no cabe lo meto en otro

fichero classe: class.upload.inc.php

Código PHP:
<?php
class upload
{
    
// class variable
    
    
var $file_permitted;        // array MIME type of the permetted file
    
var $archive_dir;        // upload directory    
    
var $max_filesize;        // max size of file upload
    
    // constructor 
    // input:   $max_fil   = max size of file upload                    default -> 300 kbyte
    //            $file_perm = array with mime/type of files to upload    default -> jpg, png, gif
    //            $arc_dir   = destination dir of the upload file            default -> ditectory corrente
    
    
function upload $file_perm $max_fil 300000$arc_dir ".." )
    {
        if ( empty (
$file_perm) ) $file_perm = array ("image/pjpeg","image/x-png","image/jpeg","image/png");
        
        
$this->file_permitted $file_perm// set mime/type of files to upload
        
        
$this->max_filesize $max_fil// set max size of file upload
        
        
$this->archive_dir $arc_dir;  // set destination dir of the upload file
    
}
    
    
// upload method
    // input: $file    = name of the FILE filed on the FORM
    
    
function putFile $file )
    {
        
$userfile_type strtok $_FILES[$file]['type'], ";"); // clear file type:  MIME TYPE
        
$userfile_name $_FILES[$file]['name']; // set the original file name
        
$userfile_size $_FILES[$file]['size']; // set the file uploaded dimension
        
$userfile $_FILES[$file]['tmp_name'];  // file uploaded in the temp dir
        
        
$error "This file type is not permitted: $userfile_type<br>"// set the error message
        
        // if the file is in the list of MIME TYPE permetted
        // set the error to empty string
        
        
$file_permitted $this->file_permitted;
        
        foreach ( 
$file_permitted as $permitted )
        {
            if ( 
$userfile_type == $permitted $error "";
        }
        
        
// if filesize is <= 0 or  > $max_filesize
        // set the error message
        
if ( ($userfile_size <= 0) || ($userfile_size $this->max_filesize) ) $error "File size error: $userfile_size Kb.<br>";
        
        
// if no error occured, start coping file
        
if ( $error == "" )
        {

            
$filename basename ($userfile_name); // extract file name

            
if (!empty ($this->archive_dir) ) 
                
$destination $this->archive_dir."/".$filename// full destination path to images dir
            
else 
                
$destination $filename// full destination path to images dir

            // check id a fale eith the same name exist
            // if exist, add a random number to the file name
            
if ( file_exists($destination) )
            {
                
srand((double)microtime()*1000000); // random number inizializzation
                
$filename rand(0,20000).$filename// add number to file name
                
if (!empty ($this->archive_dir) ) 
                    
$destination $this->archive_dir."/".$filename// full destination path to images dir
                
else 
                    
$destination $filename// full destination path to images dir
            
}

            
// Do some additional checks
            
if(!is_uploaded_file($userfile)) die ("File $userfile_name is not uploaded correctly.");
      
            
// copy file to temp dir to destination fir and removee the temp file
      
            
if ( !@move_uploaded_file ($userfile,$destination) ) die ("Impossible to copy $userfile_name from $userfile to destination directory.");

            return 
$destination// return the full path of the file on file system of the server 
        
}
        else
        {
            echo 
$error;
            return 
false;
        }

    }
    

    
// check to see what version (if any) of the gd libraries are installed
    
function chkgd2()
    {
        
$testGD get_extension_funcs("gd"); // Grab function list
        
if (!$testGD
        { 
            echo 
"GD not even installed."
            return 
false
        }
        else
        {
            
ob_start(); // Turn on output buffering
            
phpinfo(8); // Output in the output buffer the content of phpinfo
            
$grab ob_get_contents(); // Grab the buffer
            
ob_end_clean(); // Clean (erase) the output buffer and turn off output buffering 
            
            
$version strpos  ($grab,"2.0 or higher"); // search for string '2.0 or higher'
            
if ( $version ) return "gd2"// if find the string return gd2
            
else return "gd"// else return "gd"
        
}
    }    
    
    
// resize method
    
    
function resize_jpeg$image_file_path$new_image_file_path$max_width=480$max_height=1600 )
    {

        
$return_val 1;

        
// create new image

        
if(eregi("\.png$",$image_file_path)) // if is a png
        
{
            
$return_val = ( ($img ImageCreateFromPNG $image_file_path )) && $return_val == ) ? "1" "0";
        }

        if(
eregi("\.(jpg|jpeg)$",$image_file_path)) // if is a jpg
        
{
            
$return_val = ( ($img ImageCreateFromJPEG $image_file_path )) && $return_val == ) ? "1" "0";
        }

        
$FullImage_width imagesx ($img);    // original width
        
$FullImage_height imagesy ($img);    // original width

        // now we check for over-sized images and pare them down
        // to the dimensions we need for display purposes
        
$ratio =  ( $FullImage_width $max_width ) ? (real)($max_width $FullImage_width) : ;
        
$new_width = ((int)($FullImage_width $ratio));    //full-size width
        
$new_height = ((int)($FullImage_height $ratio));    //full-size height

        //check for images that are still too high
        
$ratio =  ( $new_height $max_height ) ? (real)($max_height $new_height) : ;
        
$new_width = ((int)($new_width $ratio));    //mid-size width
        
$new_height = ((int)($new_height $ratio));    //mid-size height

        // --Start Full Creation, Copying--
        // now, before we get silly and 'resize' an image that doesn't need it...
        
if ( $new_width == $FullImage_width && $new_height == $FullImage_height copy $image_file_path$new_image_file_path );
    
        
// check to see if gd2+ libraries are compiled with php
        
        
$gd_version = ( $this->chkgd2() );
        
        if ( 
$gd_version == "gd2" 
        {        
            
$full_id =  ImageCreateTrueColor $new_width $new_height ); //Crea un'immagine
            
ImageCopyResampled $full_id$img0,0,0,0$new_width$new_height$FullImage_width$FullImage_height );
        }
        elseif ( 
$gd_version == "gd" )
        {        
            
$full_id ImageCreate $new_width $new_height ); //Crea un'immagine
            
ImageCopyResized $full_id$img0,0,0,0$new_width$new_height$FullImage_width$FullImage_height );
        }
        
        else 
"GD Image Library is not installed.";
        
        if(
eregi("\.(jpg|jpeg)$",$image_file_path))
        {
            
$return_val = ( $full ImageJPEG$full_id$new_image_file_path80 ) && $return_val == ) ? "1" "0";
        }

        if(
eregi("\.png$",$image_file_path))
        {
            
$return_val = ( $full ImagePNG$full_id$new_image_file_path ) && $return_val == ) ? "1" "0";
        }

        
ImageDestroy$full_id );

        
// --End Creation, Copying--

        
return ($return_val) ? TRUE FALSE ;

    }
    
    
// thumbnail creation
    // input:   $image_path = path to image to resize
    //            $path         = destination dir of the thumbnails
    //            $larghezza  = thumbnails witdh                             default -> 80 pixel
    //            $altezza      = thumbnails height                         default -> 80 pixel
    //             $pre_name   = pre file string for thumbs                default -> "thumb_"
            
    
function miniatura $image_path$path$larghezza=80$altezza=80$pre_name="thumb_" )
    {
        if ( (
eregi("\.png$"$image_path) || eregi("\.(jpg|jpeg)$"$image_path)) && $image_path )
        {
            
$image_name basename $image_path );
            
            if (!empty (
$path) ) 
                
$thumb_path $path."/".$pre_name.$image_name// complete path to thumbnail dir
            
else 
                
$thumb_path $pre_name.$image_name// complete path to thumbnail dir
            
            
if ( $this->resize_jpeg($image_path$thumb_path$larghezza$altezza) ) return $thumb_path;
            else return 
"Errore nella creazione della miniatura<BR>";
        }
        elseif (
$image_path) return "Impossibile creare la Miniatura da questo tipo di file<BR>";
        elseif (
$send && $image_path) return "<font face=\"Verdana\" size=\"2\" color=\"red\"><b>Errore nel caricamento dell''immagine $cont</b></font><br>";    
    }
    
    function 
splitFilePath $completePath "null/null" ) {
        
        
$filePath = array ( path=>""filename=>"" ) ;
        
$tok strtok($completePath,"/");
        
        while (
$tok) {
            
$file_name $tok;
            
$tok strtok("/");
        } 
// end while
        
        
$path str_replace $file_name""$completePath );
        
$filePath[path] = $path
        
$filePath[filename] = $file_name
        
        return 
$filePath;
    }        
}
?>
venga, un saludo para ti! byeee


pd: haz una carpeta /images donde esten los ficheros y dale permisos 777

rpd: no es la mejor classe que puedes encontrar, pero... la idea ya la tienes... lo digo pq usar ese codigo... no esq este mal... ni mucho menos... pero las classes son otra cosa
__________________
3w.valenciadjs.com
3w.laislatv.com