2009-08-09 8 views
5

Die Validierung der Clientseite ist wichtig, um die Benutzerfreundlichkeit zu verbessern.Browserübergreifende Überprüfung der Dateigröße auf Client-Seite vor dem Hochladen auf den Server?

Gibt es einen browserübergreifenden Weg, um die Dateigröße zu validieren, bevor sie auf den Server hochgeladen wird? Ich benutze asp.net Datei Upload-Kontrolle.

fand ich einige Steuerelemente von Drittanbietern zu tun, dass der Check:

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

und

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

aber wie?

+1

Die Steuerelemente, die Sie gefunden haben, verwenden alle Flash :) Schau dir die js an. Sie betten SWF-Dateien ein. – redsquare

Antwort

4

Bisher war die einzige Möglichkeit, die Dateigröße zu bestimmen, bevor die Datei an den Server gesendet wurde, "clientseitige Plugins/Add-Ons" zu haben, die dicker als JavaScript sind. Diese müssten auf dem Client-System installiert werden. Z.B. Verwenden von SWFUpload, Java-Applets, ActiveX-Steuerelementen.

Jetzt können Sie die HTML5-Datei-API verwenden, d.h .:

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

sieht aus wie eine Kopie meiner Antwort! – redsquare

+0

@redsquare, ich habe Ihr "swfupload" als eines der Beispiele hinzugefügt. A +1 dafür. :-) –

+0

@ o.k.w kannst du einen Beispielcode posten? –

4

Dies ist jetzt möglich mit HTML5 des File API:

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

Das von most of the latest browsers unterstützt wird.

Internet Explorer unterstützt this workaround mit ActiveX, aber es erfordert die Sicherheitseinstellungen des Internet Explorer zu senken, so dass es für die meisten Anwendungen nicht wirklich eine Option ist.

Es dauert mehr Arbeit, aber verwenden Sie einen Flash-basierten Uploader wie SWFUpload, wenn Sie dies wirklich in IE9 oder darunter tun müssen. IE10 wird (hoffentlich) Unterstützung für die HTML5-Datei-API hinzufügen.

+0

Die IE Workaround kann zusammengefasst werden als: "Deaktivieren Sie alle Sicherheits-und PC sofort im Besitz.) IE10 bietet HTML5-Datei-API. – EricLaw

Verwandte Themen