2009-08-09 13 views
5

La validación del lado del cliente es importante para mejorar la usabilidad.Comprobación entre exploradores del tamaño del archivo en el lado del cliente antes de cargarlo en el servidor?

¿Hay alguna forma de navegador cruzado para validar el tamaño del archivo antes de cargarlo en el servidor. Estoy usando el control de carga de archivos asp.net.

he encontrado algunos controles de terceros hacer el registro de entrada:

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

y

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

pero ¿cómo?

+1

Los controles que encontraste usan flash :) mira el js. Incrustan archivos SWF. – redsquare

Respuesta

4

Anteriormente, la única forma de determinar el tamaño del archivo antes de que el archivo se enviara al servidor era tener complementos/complementos del lado del cliente 'más gruesos que el Javascript'. Estos deberían estar instalados en el sistema del cliente. P.ej. utilizando SWFUpload, applets de Java, controles ActiveX.

Ahora, puede utilizar la API de archivos HTML 5, es decir .:

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

parece una copia de mi respuesta! – redsquare

+0

@redsquare, agregué tu "swfupload" como uno de los ejemplos. A +1 por eso. :-) –

+0

@ o.k.w puede publicar un código de muestra? –

4

Esto es ahora posible con la API de archivos de HTML 5:

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

Esto es apoyado por most of the latest browsers.

Internet Explorer admite this workaround que implica ActiveX, pero requiere una reducción de la configuración de seguridad de Internet Explorer, por lo que no es realmente una opción para la mayoría de las aplicaciones.

Se necesita más trabajo, pero utilice una herramienta de carga basada en Flash como SWFUpload si realmente necesita hacer esto en IE9 o inferior. IE10 (con suerte) agregará soporte para la API de archivos HTML5.

+0

La solución de IE se puede resumir como: "Desactivar toda la seguridad y obtener PC de forma instantánea.) IE10 ofrece HTML5 File API. – EricLaw

Cuestiones relacionadas