En realidad, no tiene acceso al sistema de archivos (por ejemplo, leer y escribir archivos locales), sin embargo, debido a la especificación de HTML5 File Api, hay algunas propiedades de archivo a las que tiene acceso, y el tamaño del archivo es una de ellas.
Para el HTML a continuación
<input type="file" id="myFile" />
prueba lo siguiente:
//binds to onchange event of your input field
$('#myFile').bind('change', function() {
//this.files[0].size gets the size of your file.
alert(this.files[0].size);
});
Como es parte de la especificación HTML5, solo funcionará para navegadores modernos (se requiere v10 para IE) y agregué aquí más detalles y enlaces sobre otra información de archivo que debe conocer: http://felipe.sabino.me/javascript / 2012/01/30 / javascipt-comprobación-del-archivo-tamaño /
Soporte de navegadores antiguos
Tenga en cuenta que los navegadores antiguos devolverán un null
valor para la this.files
llamada anterior , por lo que el acceso this.files[0]
generará una excepción y debe verificar el soporte de API de archivos antes de usarlo
jQuery
archivo javascript no se agregó (o no se cargó correctamente). ¿Lo has agregado enhead
tu página?Si desea utilizar jQuery,
validate
puede crear este método:Lo usarías:
fuente
accept
regla, donde deberías haber usado laextension
regla. ~ Laaccept
regla es solo para tipos MIME. Laextension
regla es para extensiones de archivo. También debe incluir eladditional-methods.js
archivo de estas reglas.$('#formid').validate({ rules: { inputimage: { required: true, extension: "png|jpe?g|gif", filesize: 1048576 }}, messages: { inputimage: "File must be JPG, GIF or PNG, less than 1MB" } });
Este código:
Devuelve el tamaño del archivo para una entrada de formulario.
En FF 3.6 y posterior, este código debería ser:
fuente
Estoy publicando mi solución también, utilizada para un
FileUpload
control ASP.NET . Quizás alguien lo encuentre útil.fuente
f = this.files[0]
o esto fallará en los navegadores más antiguos. Por ejemploif (f && (f.size > 8388608 || f.fileSize > 8388608))
Use a continuación para verificar el tamaño del archivo y borrar si es mayor,
fuente
Puede hacer este tipo de verificación con Flash o Silverlight pero no con Javascript. El sandbox de javascript no permite el acceso al sistema de archivos. La verificación del tamaño debería realizarse en el lado del servidor después de que se haya cargado.
Si desea ir a la ruta Silverlight / Flash, puede verificar que si no están instalados por defecto en un controlador de carga de archivos normal que utiliza los controles normales. De esta manera, si tienen instalado Silverlight / Flash, su experiencia será un poco más rica.
fuente
Encontré que esto es lo más fácil si no planea enviar el formulario a través de los métodos estándar ajax / html5, pero, por supuesto, funciona con cualquier cosa.
NOTAS
Esto solía funcionar, pero ya no funciona en Chrome, solo probé el código anterior y funcionó tanto en ff como en Chrome (último). El segundo ["0"] ahora es firstChild.
fuente
Por favor intente esto:
fuente