2009-08-09 21 views
5

Walidacja po stronie klienta jest ważna dla poprawy użyteczności.Sprawdzanie rozmiaru przeglądarki po stronie przeglądarki po stronie przeglądarki przed przesłaniem jej na serwer?

Czy istnieje sposób sprawdzania poprawności rozmiaru pliku w wielu przeglądarkach przed przesłaniem go na serwer. Używam kontroli przesyłania plików asp.net.

znalazłem niektóre kontrole osób trzecich zrobić to należy sprawdzić:

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

i

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

ale jak?

+1

Kontrolki, które znalazłeś wszyscy używają flasha :) spójrz na js. Wbudowują pliki SWF. – redsquare

Odpowiedz

4

Wcześniej jedynym sposobem określenia rozmiaru pliku przed przesłaniem pliku na serwer było posiadanie wtyczek/dodatków po stronie klienta "grubszych niż javascript". Zostaną one zainstalowane w systemie klienta. Na przykład. przy użyciu SWFUpload, apletów Java, formantów ActiveX.

Teraz można korzystać z HTML5 File API, tj .:

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

wygląda jak kopia mojej odpowiedzi! – redsquare

+0

@ redsquare, dodałem twoje "swfupload" jako jeden z przykładów. +1 za to. :-) –

+0

@ o.k.w możesz wysłać przykładowy kod? –

4

Jest to teraz możliwe z HTML5 API pliku:

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

ten jest obsługiwany przez most of the latest browsers.

Program Internet Explorer obsługuje this workaround z udziałem ActiveX, ale wymaga obniżenia ustawień zabezpieczeń programu Internet Explorer, więc nie jest to opcja dla większości aplikacji.

Potrzeba więcej pracy, ale użyj programu do przesyłania plików Flash, takiego jak SWFUpload, jeśli naprawdę musisz to zrobić w IE9 lub poniżej. IE10 (mam nadzieję) doda obsługę interfejsu API pliku HTML5.

+0

Sposób obejścia tego problemu można podsumować w następujący sposób: "Wyłącz wszystkie zabezpieczenia i natychmiast uzyskaj komputer.) IE10 oferuje API plików HTML5. – EricLaw

Powiązane problemy