Credevo di avercela fatta, ma mi sbagliavo.
Ho creato un piccolo cms che permette all'utente di caricare file sul server tramite il classico input type=file. Mi sono accorto però che il server, che non posso modificare, ha iò php. ini limitato a non so quale grandezza. Poco male, ho pensato. Limito le grandezze dei file uplodabili e il gioco è fatto. Non avevo pensato però che facendo tutto questo tramite php comunque l'utente deve aspettare una vita prima di scoprire che il file è troppo grande per essere uplodato. A questo punto mi serviva una soluzione lato client che dicesse in anticipo che il file scelto per l'upload era esagerato, e ho così cominciato a girare per la rete, trovando una soluzione, questa:
Questo codicillo non fa altro che controllare ,tramite jquery , la grandezza del file appena scelto nel campo input e, se quest'ultimo supera il megabyte caccia fuori un alert e svuota il campo.codice:<script type="text/javascript"> $(document).ready(function(){ //binds to onchange event of your input field $ ( '.file_size' ). bind ( 'change' , function () { //this.files[0].size gets the size of your file. if( this . files [ 0 ]. size > 1000000){ alert ('Uno o più file caricati supera la grandezza di 1MB'); //For IE $(".file_size").append($(".file_size").clone(true)); //For other browsers $(".file_size").val(""); } }); }); </script>
Funziona su tutti i browser, tranne che su IE(anche 8 e 9). Ie non lo pensa proprio, non esce l'alert ne tantomeno svuota il campo input. A questo punto non saprei cosa fare onestamente, esiste un modo per farlo funzionare? Esistono alternative? (possibilmente non arzigogolate perchè ho praticamente fatto tutti i form).
Grazie in anticipo per l'aiuto.