Nello sviluppare siti internet e pagine dove gli utenti interagiscono, in alcune occasioni è necessario introdurre la possibilità di eseguire l’upload di un files.
Negli anni ho sperimentato, amato e odiato, un’infinità di librerie adatte allo scopo. Fino ad arrivare a quello che uso abitualmente.
Per eseguire l’upload di un file da una pagina web, plupload è un tool eccezionale, consentendo di utilizzare una grafica personalizzata ed elaborata che si integra bene con la pagina che vogliamo realizzare.
Inoltre consente di intervenire mediante javascript per personalizzare abbondantemente i controlli sui files che gli utenti tentano di caricare, agendo con dei filtri possiamo restringere il tipo di file da caricare, le dimensioni, e anche quanti file possono caricare per ogni sessione.
Occorre però intervenire e personalizzare opportunamente la gestione degli errori, andando a intercettare l’evento Error tramite un bind (un comando stesso di plupload).
Nel codice seguente personalizziamo il messaggio di errore visualizzato per l’errore FILE_EXTENSION_ERROR, numero del errore -601
[code]
// Error Alert /////////////////////////////////////////////
// If an error occurs an alert window will popup with the error code</pre>
// and error message.
// Ex: when a user adds a file with now allowed extension
uploader.bind(‘Error’, function(up, err) {
if (err.code == -601){
alert("Error: " + err.message +
(err.file ? " File: " + err.file.name : " ")
+ " sono accettati solo file .xls");
} else {
alert("Error: " + err.code + ", Message: "
+ err.message + (err.file ? ", File: "
+ err.file.name : "") + "");
}
up.refresh(); // Reposition Flash/Silverlight
});
[/code]
Nell’esempio proposto viene utilizzato un banale alert, che possiamo anche personalizzare con altri tipi di popup per mantenere la coerenza con la grafica della nostra pagina web.
In questo caso il codice di errore da gestire si riferiva ad un files con un’estensione non accettata.
L’unica nota negativa della documentazione di plupload, è che non sono riuscito a trovare una lista dei codici di errore facilmente. Ho trovato più semplice andare a ricerca nel codice javascript di plupload stesso, dell’errore per capire cosa gestire…