Tengo un objeto de carga de archivos en mi página:
<input type="file" ID="fileSelect" />
con los siguientes archivos de Excel en mi escritorio:
- file1.xlsx
- file1.xls
- file.csv
Quiero que la carga de archivos de sólo mostrar .xlsx
, .xls
, y .csv
archivos.
Usando el accept
atributo, encontré que estos tipos de contenido se ocuparon de .xlsx
& .xls
extensiones ...
accept
= application / vnd.openxmlformats-officedocument.spreadsheetml.sheet (.XLSX)
accept
= aplicación / vnd.ms-excel (.XLS)
Sin embargo, ¡no puedo encontrar el tipo de contenido correcto para un archivo CSV de Excel! ¿Alguna sugerencia?
EJEMPLO: http://jsfiddle.net/LzLcZ/
Respuestas:
Bueno, esto es vergonzoso ... Encontré la solución que estaba buscando y no podría ser más simple. Usé el siguiente código para obtener el resultado deseado. Espero que esto ayude a alguien en el futuro. Gracias a todos por su ayuda.
Tipos de aceptación válidos:
Para archivos CSV (.csv), use:
Para los archivos de Excel 97-2003 (.xls), use:
Para archivos Excel 2007+ (.xlsx), use:
Para archivos de texto (.txt) use:
Para archivos de imagen (.png / .jpg / etc), use:
Para archivos HTML (.htm, .html), use:
Para archivos de video (.avi, .mpg, .mpeg, .mp4), use:
Para archivos de audio (.mp3, .wav, etc.), use:
Para archivos PDF , use:
DEMO:
http://jsfiddle.net/dirtyd77/LzLcZ/144/
NOTA:
Si está intentando mostrar archivos CSV de Excel (
.csv
), NO use:text/csv
application/csv
text/comma-separated-values
( funciona solo en Opera ).Si está intentando mostrar un tipo de archivo en particular (por ejemplo, a
WAV
oPDF
), esto casi siempre funcionará ...fuente
<input type="file" accept=".csv, text/csv" />
funcionó para mí en Firefox, Chrome y Opera en Mac. solo .csv no funcionó en todos los navegadores.En estos días solo puedes usar la extensión de archivo
fuente
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel
) todavía no parece funcionar en Edge 41.16299.820.0 stackoverflow.com/questions/31875617/… wpdev.uservoice.com/forums/257854-microsoft-edge-developer/…Dom, este atributo es muy antiguo y no se acepta en los navegadores modernos, que yo sepa, pero aquí hay una alternativa, intente esto
Supongo que te ayudará, por supuesto, puedes cambiar este script de acuerdo a tus necesidades.
fuente
accept
atributo es la sugerencia que proporciona al diálogo de archivo abierto. Se le debe presentar al usuario archivos coincidentes de manera predeterminada, presumiblemente con una opción para seleccionar otros tipos si así lo desea; así es como se comportan la mayoría de los navegadores modernos ahora.Lo he usado
text/comma-separated-values
para CSV mime-type en el atributo accept y funciona bien en Opera. Intentétext/csv
sin suerte.Algunos otros tipos MIME para CSV si los sugeridos no funcionan:
Fuente: http://filext.com/file-extension/CSV
fuente
Esto no funcionó para mí en Safari 10:
Tuve que escribir esto en su lugar:
fuente
Puede conocer el tipo de contenido correcto para cualquier archivo simplemente haciendo lo siguiente:
1) Seleccione el archivo interesado,
2) Y ejecuta en la consola esto:
También puede establecer el atributo "múltiple" para su entrada para verificar el tipo de contenido de varios archivos a la vez y hacer lo siguiente:
La aceptación de atributos tiene algunos problemas con atributos múltiples y no funciona correctamente en este caso.
fuente
He modificado la solución de @yogi. La adición es que cuando el archivo tiene un formato incorrecto, restablezco el valor del elemento de entrada.
Tengo un buildin de verificación personalizado, porque en la ventana de archivo abierto el usuario aún puede elegir las opciones "Todos los archivos ('*')", independientemente de si configuro explícitamente el atributo accept en el elemento de entrada.
fuente
Ahora puede usar el nuevo atributo de validación de entrada html5
pattern=".+\.(xlsx|xls|csv)"
.fuente
This attribute applies when the value of the type attribute is text, search, tel, url or email; otherwise it is ignored.
respecto a la entrada del archivo, continúan diciendofile: A control that lets the user select a file. Use the accept attribute to define the types of files that the control can select.