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 nullvalor para la this.filesllamada 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
jQueryarchivo javascript no se agregó (o no se cargó correctamente). ¿Lo has agregado enheadtu página?Si desea utilizar jQuery,
validatepuede crear este método:Lo usarías:
fuente
acceptregla, donde deberías haber usado laextensionregla. ~ Laacceptregla es solo para tipos MIME. Laextensionregla es para extensiones de archivo. También debe incluir eladditional-methods.jsarchivo 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
FileUploadcontrol 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