Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Classe Upload

  1. #1

    Classe Upload

    Salve,
    Siccome in quasi ogni sito che faccio, ho bisogno di un Uploader...per non dover modificare ogni volta i miei script, avevo intenzione di crearmi una classe per l'Upload dei file, in modo da velocizzare il lavoro... (Attenzione, non voglio link a classi già fatte, voglio farla io con le mie opzioni e strutturata come dico io)

    Ho scritto qui il codice (file chiamato upload.class.inc.php):

    Codice PHP:
    <?php

    class Uploader {
     
     var 
    $max_file_size 0;
     var 
    $estensioni_consentite = array();
     var 
    $opzioni_upload = array();
        
        function 
    max_size($valore)
        {
            
    $this->max_file_size $valore;
        }
        
        function 
    estensioni_ok($array)
        {
            
    $this->estensioni_consentite $array;
        }
        
        function 
    opzioni_up($array)
        {
            
    $this->opzioni_upload $array;
        }

        function 
    upload_file($nome_campo_form$cartella_upload)
        {
         
    $msg 0// se 0 estensione non consentita
         
    $overwrite 1// se 0 rinomina
         
            
    $nome_file $_FILES[$nome_campo_form]['name'];

            if(
    $max_file_size != 0)
            {
                if(
    $_FILES[$nome_campo_form]['size'] > $max_file_size)
                {
                    die(
    "Il File è troppo Grande!");
                }
            }
            
            foreach(
    $this->opzioni_upload as $key => $value)
            {
                if(
    $key == 'lock_ext')
                {
                     if(
    $value == 1)
                     {
                        
    $file_split explode(".",$nome_file);
                    
                        
    $estensione array_pop($file_split);
                    
                        foreach(
    $this->estensioni_consentite as $valore)
                        {
                            if(
    $estensione == $valore)
                            {
                                
    $msg 1;
                            }
                        }
                    } else {
                        
    $msg 1;    
                    }    
                }
                
                if(
    $key == 'overwrite')
                {
                    if(
    $value == 1)
                    {
                        
    $overwrite 1;
                    } else {
                        
    $overwrite 0;
                    }
                }
                
            }
        
            if(
    is_uploaded_file($_FILES[$nome_campo_form]['tmp_name']))
            {
                if(
    $overwrite == 0)
                {
                    if(
    file_exists($cartella_upload.$nome_file))
                    {
                        
    $casnum rand(0,9999999999);
                        
                        
    $filenome dividinome($nome_file);
                        
                        
    $nome_file $filenome.'('.$casnum.').'.$estensione;
                    }
                }
                
                if(
    move_uploaded_file($_FILES[$nome_campo_form]['tmp_name'], $cartella_upload.$nome_file))
                {
                    print(
    "Upload Riuscito!");
                } else {
                    die(
    "Errore nell'Upload del File");
                }
            } else {
                die(
    "Errore nell'Upload del File");
            }
        }
        
        function 
    dividi_nome($nome)
        {
            
    $fsplit explode('.',$nome);
            
            
    $vai count($fsplit);
            
            
    $i=0;
            
            while(
    $i<$vai 1)
            {
                if(
    $i==$vai 2)
                {
                    
    $nome.=$fsplit[$i];
                } else {
                    
    $nome.=$fsplit[$i].'.'
                }
                
             
    $i++;
            }
            
         return 
    $nome;
        }
        
    }

    ?>
    il codice del form di prova è questo:

    codice:
    <html>
    <head>
    <title>Prova</title>
    </head>
    
    <body>
    <form action='esempio.php' method='POST'>
    <input type='file' name='userfile' />
    <input type='submit' value='upload' />
    </form>
    </body>
    
    </html>
    il File esempio.php a cui mando i dati è questo:

    Codice PHP:
    <?php
        
    include("libs/upload.class.inc.php");
        
        
    $test = new Uploader();
        
        
    $test->opzioni_up(array('lock_ext' => 1'overwrite' => 1));
        
        
    $test->estensioni_ok(array('zip''rar''mp3''jpg' 'gif'));
        
        
    $test->upload_file('userfile','files/');
    ?>
    Solo che il tutto non funziona, ma non riesco a capire il perchè, ho notato che printando la variabile: $nome_file della function upload_file, la variabile è vuota!
    Dove sta l'errore???

  2. #2
    Ho Risolto, mancava l'enctype nel form...in + ho corretto un piccolo bug nei controlli della classe...se a qualcuno interessasse, vi posto il sorgente completo, e le istruzioni per un facile upload!

    pagina: upload.class.inc.php

    Codice PHP:
    <?php

    class Uploader {
     
     var 
    $max_file_size 0;
     var 
    $estensioni_consentite = array();
     var 
    $opzioni_upload = array();
        
        function 
    max_size($valore)
        {
            
    $this->max_file_size $valore;
        }
        
        function 
    estensioni_ok($array)
        {
            
    $this->estensioni_consentite $array;
        }
        
        function 
    opzioni_up($array)
        {
            
    $this->opzioni_upload $array;
        }

        function 
    upload_file($nome_campo_form$cartella_upload)
        {
         
    $msg 0// se 0 estensione non consentita
         
    $overwrite 1// se 0 rinomina
         
            
    $nome_file $_FILES[$nome_campo_form]['name'];

            if(
    $max_file_size != 0)
            {
                if(
    $_FILES[$nome_campo_form]['size'] > $max_file_size)
                {
                    die(
    "Il File è troppo Grande!");
                }
            }
            
            foreach(
    $this->opzioni_upload as $key => $value)
            {
                if(
    $key == 'lock_ext')
                {
                     if(
    $value == 1)
                     {
                        
    $file_split explode(".",$nome_file);
                    
                        
    $estensione array_pop($file_split);
                    
                        foreach(
    $this->estensioni_consentite as $valore)
                        {
                            if(
    $estensione == $valore)
                            {
                                
    $msg 1;
                            }
                        }
                    } else {
                        
    $msg 1;    
                    }    
                }
                
                if(
    $key == 'overwrite')
                {
                    if(
    $value == 1)
                    {
                        
    $overwrite 1;
                    } else {
                        
    $overwrite 0;
                    }
                }
                
            }
        
            if(
    $msg == 0)
            {
                die(
    "Estensione non Consentita!");
            }
        
            if(
    is_uploaded_file($_FILES[$nome_campo_form]['tmp_name']))
            {
                if(
    $overwrite == 0)
                {
                    if(
    file_exists($cartella_upload.$nome_file))
                    {
                        
    $casnum rand(0,9999999999);
                        
                        
    $filenome dividinome($nome_file);
                        
                        
    $nome_file $filenome.'('.$casnum.').'.$estensione;
                    }
                }
                
                if(
    move_uploaded_file($_FILES[$nome_campo_form]['tmp_name'], $cartella_upload.$nome_file))
                {
                    print(
    "Upload Riuscito!");
                } else {
                    die(
    "Errore nell'Upload del File");
                }
            } else {
                die(
    "Errore nell'Upload del File");
            }
        }
        
        function 
    dividi_nome($nome)
        {
            
    $fsplit explode('.',$nome);
            
            
    $vai count($fsplit);
            
            
    $i=0;
            
            while(
    $i<$vai 1)
            {
                if(
    $i==$vai 2)
                {
                    
    $nome.=$fsplit[$i];
                } else {
                    
    $nome.=$fsplit[$i].'.'
                }
                
             
    $i++;
            }
            
         return 
    $nome;
        }
        
    }

    ?>
    Pagina di Esempio: esempio.php

    Codice PHP:
    <?php
        
    // include la classe che io ho messo nella sottocartella libs
        
    include("libs/upload.class.inc.php");
        
        
    // valorizzo la variabile
        
    $test = new Uploader();
        
        
    // imposto le opzioni
        // lock_ext = 1, permette  di scegliere le estensioni consentite;
        // overwrite = 1, sovrascrive il file; impostato a 0 rinomina il file uppato.
        
    $test->opzioni_up(array('lock_ext' => 1'overwrite' => 1));
        
        
    // se lock_ext è messo ad 1, con questa funzione si scelgono le estensioni consentite
        
    $test->estensioni_ok(array('zip''rar''mp3''jpg' 'gif'));
        
        
    // uppa il file
        // al posto di userfile ci va il nome del campo di tipo file del form
        // al posto di files/ ci va la cartella dove andranno uppati i files
        
    $test->upload_file('userfile','files/');
    ?>
    questo è il form di upload di esempio: esempio.html

    codice:
    <html>
    <head>
    <title>Prova</title>
    </head>
    
    <body>
    <form enctype="multipart/form-data" action='esempio.php' method='POST'>
    <input type='file' name='userfile' />
    <input type='submit' value='upload' />
    </form>
    </body>
    
    </html>
    Spero possa servire a qualcuno, lasciate commenti o critiche se volete!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.