Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    617

    Controllare la grandezza di un file prima dell'upload!

    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:

    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>
    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.

    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.

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    ... ma tutti quegli spazi all'interno delle istruzioni ci sono realmente?
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    617
    Si xchè?

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,132
    Perché non ci dovrebbero essere, ma da una ricerca veloce ho trovato questa demo ma con IE pur funzionando bene, non verifica precedentemente al upload le dimensioni del file, ma solo dopo il caricamento
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    617
    Non è che conosci metodi alternativi? A me serve non poco una cosa del genere!

    Grazie!

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,132
    Ritengo ma mai appurato con certezza, che sia una limitazione del browser a non permettere la "lettura" del file lato client
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Originariamente inviato da Madsex
    Non è che conosci metodi alternativi? A me serve non poco una cosa del genere!

    Grazie!
    Agendo lato server puoi bloccare l'invio al raggiungimento della dimensione massima... e' il compromesso migliore che ti si possa consigliare
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762
    ...e magari aggiungi una postilla di testo che avvisa sulla grandezza massima consentita per il file

  9. #9
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Provalo un po' sui vari browser... non garantisco nulla:

    codice:
    <!doctype html>
    <html>
    <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
    <title>Dimensione del file</title>
    <script type="text/javascript">
    function updateSize() {
    	document.getElementById("fileSize").innerHTML = document.getElementById("uploadFile").files[0].size;
    }
    </script>
    </head>
    
    <body onload="updateSize();">
    <form name="uploadForm">
    
    
    <input id="uploadFile" type="file" name="myFile" onchange="updateSize();" /> (dimensione: <span id="fileSize">0</span> bytes)</p>
    
    
    <input type="submit" value="Invia file" /></p>
    </form>
    </body>
    </html>
    Saluti.

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.