PHP: Upload File? Semplice e Veloce


Siete Stanchi di dover scrivere sempre lo stesso codice per creare l’upload dei file? E magari di dover modificare lo script ogni volta per poterlo adattare alla pagina web?

In Vostro soccorso, ho creato una classe che vi permetterà di creare un Uploader in pochi Minuti!!!

La Classe la potete Scaricare da QUI: SCARICA

Vediamo ora come va integrata nella pagina:


Per prima cosa aprite il file: error.inc.php (sta nella cartella Libs) e se volete, personalizzate i messaggi di errore.

Ora create il vostro form con il campo file e il tasto submit e nell’action mettete upload.php (ricordate di mettere: enctype=”multipart/form-data”)

Create il file upload.php e all’interno scriveremo:

// include la libreria
include(“libs/upload.class.inc.php”);

// valorizza la variabile
$test = new Uploader();

// Opzioni: controllo estensione (1 = attivo, 0 = non attivo), sovrascrittura (1 = attivo, 0 = non attivo)
$test->opzioni_up(array(‘lock_ext’ => 1, ‘overwrite’ => 0));

// prevista la funzione max_size(valore) che permette di scegliere la grandezza massima del file

// se lock_ext = 1 bisogna mettere le estensioni consentite
$test->estensioni_ok(array(‘zip’, ‘rar’, ‘mp3’, ‘jpg’ , ‘gif’));

// uppa il file, paramentri: nome del campo di tipo file, cartella dove uppare
$test->upload_file(‘userfile’,’files/’);

// stampa l’Url del file Uppato
print(“<br />” . $test->get_url(basename(__FILE__)));

Abbiamo finito…

Il nostro Uploader è pronto! Quanto ci abbiamo impiegato a personalizzarlo? 5 minuti? Nemmeno? 😀

Alla Prossima! 😉



7 Commenti

  1. simone ha detto:

    salve sono nuovo in questo forum io sto cercando di fare un sito web dove tutti gli utenti si potranno costruire il proprio sito web gratis, e inviare i file.html nel mio spazio hosting e trovo molto utile questo script ma mi chiedevo se fosse possibile una modifica, se quando si fa un upload si potrebbe impostare in automatico la rinonima del file ess: se un file in upload si chiama file.html se fosse possibile farlo diventare in automatico index.html.

    Ringrazio anticipatamente a tutti 🙂

  2. StefanoV ha detto:

    Ciao Marco, questa mia classe aveva parecchi errori che spuntavano giorno dopo giorno 🙂 alla fine invece di correggerla, l’ho riscritta da capo…

    Eccoti il link: http://www.sv-design.org/blog/php-nuova-classe-uploader/ 😉

  3. Marco ha detto:

    Ciao e grazie mille per lo script!
    Ho un problemino: dato che voglio disabilitare la sovrascrittura ho messo “0” in upload.php.
    In questo caso se viene uppato un file con lo stesso nome e stessa estensione il tuo script genera un numero a caso da 0 a 999999999999 da mettere in parentesi tra il nome del file e l’estensione. Il problema è che effettivamente l’estensione rimane troncata. Per intenderci meglio viene inserito un file di questo tipo: “nomefile(4853949681).”, che non contiene l’estensione e pertanto risulta inutilizzabile fino a che non viene aggiunta manualmente.
    Ho cercato di analizzare il codice alla ricerca di una soluzione ma la mia poca esperienza in merito non ha portato a nessuna conclusione.

    PS: per ora ho semplicemente commentato le righe della funzione di rinomina sostituendola con un die(ERRORE), che interrompe l’upload e stampa un messaggio che dice all’utente di rinominare il file e provare di nuovo, però se si riuscisse a rendere funzionante la possibilità di rinominare sarebbe molto più comodo.
    Grazie!

  4. StefanoV ha detto:

    Prima di $test->upload_file devi inserire il comando: $test->max_size(VALORE IN BYTE)

    Attenzione perkè la dimensione massima dipende anche dal tuo hosting, di solito è limitato a 8MB… chiedi al tuo provider.

    In Alternativa questa è la nuova classe: http://www.sv-design.org/blog/php-nuova-classe-uploader/

    Questo post contiene la vecchia versione con qualche bug, ti consiglio la nuova…

  5. Giacomo ha detto:

    Ciao, mi chiamo Giacomo, ho provato il tuo listato per fare l’upload dei files e va tutto bene, l’unica cosa che non riesxo ad aumentare è la grandezza del file, vorrei portarlo a 100 MB, ma non so come fare puoi aiutarmi? Ti ringrazio anticipatamente. Ti informo che non sono un esperto. Ciao e a presto.

  6. StefanoV ha detto:

    Il file upload.class.inc.php va lasciato così com'è! 😉

  7. Gianfry ha detto:

    Ma nel file upload.class.inc.php bisogna modificare qualcosa o lasciarlo intatto così come lo hai fatto tu??

%d blogger hanno fatto clic su Mi Piace per questo: