2009-08-09 9 views
5

İstemci tarafında doğrulama, kullanılabilirliği geliştirmek için önemlidir.İstemci tarafında sunucuya yüklemeden önce dosya boyutunda çapraz tarayıcı kontrolü yapılıyor mu?

sunucuya yüklemeden önce dosya boyutunu doğrulamak için herhangi çapraz tarayıcı yolu var mı. Asp.net dosya yükleme kontrolü kullanıyorum.

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

ve

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

ama nasıl

Bazı üçüncü taraf denetimleri bu denetimi yapmak bulundu?

+1

Tüm kullandığınız kontroller flash kullanıldı :) js'ye bakın. SWF dosyalarını gömdüler. – redsquare

cevap

4

Daha önce, dosya sunucusuna üzerinden gönderilen önce boyutunun tespitini tek yolu istemci tarafı eklentileri/eklentiler 'javascript daha kalındır' sağlamaktı. Bunların istemci sistemine yüklenmesi gerekiyordu. Örneğin. SWFUpload, Java uygulamaları, ActiveX denetimleri kullanarak.

Şimdi, HTML5 Dosya API kullanabilirsiniz, yani .:

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

cevabımın bir kopyası gibi görünüyor! – redsquare

+0

@redsquare, "swfupload" u örneklerden biri olarak ekledim. Bunun için bir +1. :-) –

+0

@ o.k.w örnek bir kod gönderebilir misiniz? –

4

Bu HTML5 Dosya API ile artık mümkün: Bu most of the latest browsers tarafından desteklenmektedir

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

.

Internet Explorer, ActiveX'i içeren this workaround'u destekler, ancak Internet Explorer'ın güvenlik ayarlarını düşürmeyi gerektirir, bu nedenle çoğu uygulama için gerçekten bir seçenek değildir.

O daha fazla iş alır, ama eğer gerçekten IE9 veya aşağıdaki bunu gerekiyorsa öyle SWFUpload gibi Flash tabanlı yükleyici kullan. IE10, HTML5 Dosya API'sı için destek (umarım) ekleyecektir.

+0

IE geçici çözüm olarak özetlenebilir: "Tüm güvenlik kapatın ve PC anında el koymuş) IE10 HTML5 Dosya API sunmaktadır.. – EricLaw

İlgili konular