validar type tipo restringir permitidas pasado para filtrar extensiones certificado atributos atributo archivos archivo accept html5 file-upload fileapi

html5 - type - restringir tipo de archivos php



restringir la selección de carga de archivos a tipos específicos (2)

De todos modos, para restringir la selección de tipos de archivos a través del elemento <input type="file" /> ?

Por ejemplo, si quisiera subir solo tipos de imágenes, restringiría las posibles selecciones a (image / jpg, image / gif, image / png), y el cuadro de diálogo de selección oscurecería los archivos de otros tipos de mime.

ps Sé que puedo hacer esto después del hecho con File API escaneando los atributos .type. Estoy tratando de restringir esto antes. También sé que puedo hacerlo a través de flash, pero NO quiero tener flash de uso para esto.


Es mejor dejar que el usuario seleccione cualquier archivo y luego verifique su tipo; esto es mejor para los navegadores:

var file = (el[0].files ? el[0].files[0] : el[0].value || undefined), supportedFormats = [''image/jpg'',''image/gif'',''image/png'']; if (file && file.type) { if (0 > supportedFormats.indexOf(file.type)) { alert(''unsupported format''); } else { upload(); } }

También puede verificar el tamaño del archivo usando la propiedad file.size.


Hay un atributo html para este propósito específico llamado accept pero tiene poco soporte en todos los navegadores. Debido a esta validación del lado del servidor se recomienda en su lugar.

<input type="file" name="pic" id="pic" accept="image/gif, image/jpeg" />

Si no tiene acceso al SWFUpload eche un vistazo a una solución basada en flash como SWFUpload .

Ver más sobre esto aquí: Atributo ''accept'' de entrada de archivo - ¿es útil?