2009-08-09 13 views
5

La convalida del lato client è importante per migliorare l'usabilità.Verifica cross-browser delle dimensioni del file sul lato client prima di caricarlo sul server?

Esiste un modo cross-browser per convalidare la dimensione del file prima di caricarlo sul server. Sto usando il controllo caricamento file asp.net.

ho trovato alcuni controlli di terze parti fanno di controllo:

http://ajaxuploader.com/Demo/simple-upload.aspx

e

http://demo.essentialobjects.com/Default.aspx?path=AJAXU

ma come?

+1

I controlli che hai trovato utilizzano tutti in flash :) guarda il js. Incorporano i file SWF. – redsquare

risposta

4

In precedenza, l'unico modo per determinare la dimensione del file prima che il file venisse inviato al server era quello di avere plugin/add-on lato "thicker than javascript". Questi dovrebbero essere installati sul sistema client. Per esempio. utilizzando SWFUpload, applet Java, controlli ActiveX.

Ora, è possibile utilizzare l'HTML5 API File, cioè .:

var size = document.getElementById('myfile').files[0].size; 
+0

sembra una copia della mia risposta! – redsquare

+0

@redsquare, ho aggiunto il tuo "swfupload" come uno degli esempi. Un +1 per quello. :-) –

+0

@ o.k.w puoi pubblicare un codice di esempio? –

4

Questo è ora possibile con File API di HTML5:

<script> 
    var myFile = document.getElementById('myFile'); 
    var size; 
    myFile.addEventListener('change', function() { 
     size = this.files[0].size; 
    }); 
</script> 

Questo è supportato da most of the latest browsers.

Internet Explorer supporta this workaround che coinvolge ActiveX, ma richiede la riduzione delle impostazioni di protezione di Internet Explorer, quindi non è davvero un'opzione per la maggior parte delle applicazioni.

Richiede più lavoro, ma usa un uploader basato su Flash come SWFUpload se hai davvero bisogno di farlo in IE9 o sotto. IE10 (si spera) aggiungerà il supporto per l'API del file HTML5.

+0

La soluzione alternativa di IE può essere riassunta come: "Disattivare tutta la sicurezza e ottenere immediatamente il possesso del PC.) IE10 offre API file HTML5. – EricLaw

Problemi correlati