Yo no sé de ninguna manera única de conseguir consistentemente el tamaño del archivo exacta, pero si usted está dispuesto a saltar a través de algunos aros, usted podría:
1) Estimación basada en las dimensiones y el tipo de archivo. Debido a las técnicas de compresión, hay una amplia variación, pero probablemente puedas ejecutar algunas estadísticas y proponer una heurística medio decente.
2) En IE, use la propiedad fileSize
de una imagen. En otros navegadores compatibles con Canvas, use la técnica descrita en in this question on getting image data in JavaScript para captar la URL de datos, luego haga los cálculos (multiplique por 3/4, ya que base64 es un aumento de tamaño de 4/3).
Editar
3) La sugerencia de que otros han dado (en particular, según se especifica en la pregunta vinculada en la respuesta de Fabien Bernede) sobre conseguir encabezados HTTP es brillante y precisa. Probablemente se encuentre en conflicto con las restricciones de dominio cruzado en algunos casos, pero probablemente sea el método más consistente y efectivo.
Cualquier contenido descargable tiene un tamaño y hay algunas formas bien definidas de recuperar esa información. – Manfre
@ user326404 no en js Tengo miedo – redsquare
@redsquare - Eso es incorrecto. var xhr = new XMLHttpRequest(); xhr.open ('HEAD', 'http: //whatever.file.git', true); xhr.onreadystatechange = function() { if (xhr.readyState == 4) { if (xhr.status == 200) { alert ('Tamaño en bytes:' + xhr.getResponseHeader ('Content-Length'))); } } }; xhr.send (null); – bmelton