¿Qué tipo MIME debo usar para CSV?
He visto application/csv
usados y tambiéntext/csv
.
¿Hay una diferencia? ¿Importa cuál siempre que la solicitud coincida con algo que esté disponible? ¿Son intercambiables?
RFC 7111
Hay un RFC que lo cubre y dice que se debe usar text/csv
.
Este RFC actualiza el RFC 4180.
Sobresalir
Recientemente descubrí un tipo MIME explícito para la aplicación Excel/vnd.ms-excel. Fue registrado en la IANA en el 96. Tenga en cuenta las preocupaciones planteadas sobre estar a merced del remitente y que su máquina sea vulnerada .
Tipo de medio: aplicación/vnd.ms-excel
Nombre Microsoft Excel (tm)
Parámetros requeridos: Ninguno
Parámetros opcionales: nombre
Consideraciones de codificación: se prefiere base64
Consideraciones de seguridad: como ocurre con la mayoría de los tipos de aplicaciones, estos datos están destinados a ser interpretados por un programa que comprenda los datos en el sistema del destinatario. Los destinatarios deben comprender que están a "merced" del remitente al recibir este tipo de datos, ya que los datos se ejecutarán en su sistema y la seguridad de sus máquinas puede verse violada.
OID { org-id archivos-ms(4) ms-excel (3) }
Hoja de cálculo de tipo de objeto
Comentarios Este tipo de medio/OID se utiliza para identificar Microsoft Excel de forma genérica (es decir, independientemente de la versión, subtipo o formato de plataforma).
No sabía que se permitieran extensiones de proveedores. Consulte esta respuesta para obtener más información: gracias starbeamrainbowlabs por la referencia.
Debe utilizar "text/csv" según RFC 4180 .
Mis usuarios pueden cargar archivos CSV y text/csv
no application/csv
aparecieron hasta ahora. Estos son los identificados mediante finfo() :
text/plain
text/x-csv
Y estos son los que se transmiten a través del navegador:
text/plain
application/vnd.ms-excel
text/x-csv
Los siguientes tipos no aparecieron, pero podrían:
application/csv
application/x-csv
text/csv
text/comma-separated-values
text/x-comma-separated-values
text/tab-separated-values
Comportamiento extraño con MS Excel
: Si exporto a "formato basado en texto, separado por comas ( csv
)", este es el tipo mime que obtengo después de cargarlo en mi servidor web:
[name] => data.csv
[type] => application/vnd.ms-excel
Entonces Microsoft parece estar haciendo sus propias cosas nuevamente, independientemente de los estándares existentes: https://en.wikipedia.org/wiki/Comma-separated_values
Para cualquiera que tenga problemas con el tipo mimeType de la API de Google para *.csv
archivos, he encontrado la lista de tipos MIME para archivos de documentos de la API de Google.
Formato de documento de Google | Formato de conversión | Tipo MIME correspondiente |
---|---|---|
Documentos | HTML | text/html |
HTML (comprimido) | application/zip |
|
Texto sin formato | text/plain |
|
Texto rico | application/rtf |
|
Abrir documento de Office | application/vnd.oasis.opendocument.text |
|
application/pdf |
||
Documento MS Word | application/vnd.openxmlformats-officedocument.wordprocessingml.document |
|
EPUB | application/epub+zip |
|
Hojas de cálculo | Excel | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
Abrir hoja de Office | application/x-vnd.oasis.opendocument.spreadsheet |
|
application/pdf |
||
CSV (solo la primera hoja) | text/csv |
|
TSV (solo la primera hoja) | text/tab-separated-values |
|
HTML (comprimido) | application/zip |
|
Dibujos | JPEG | image/jpeg |
PNG | image/png |
|
SVG | image/svg+xml |
|
application/pdf |
||
Presentaciones | MS PowerPoint | application/vnd.openxmlformats-officedocument.presentationml.presentation |
Presentación de oficina abierta | application/vnd.oasis.opendocument.presentation |
|
application/pdf |
||
Texto sin formato | text/plain |
|
Guiones de aplicaciones | JSON | application/vnd.google-apps.script+json |
Fuente aquí: https://developers.google.com/drive/v3/web/manage-downloads#downloading_google_documents la tabla debajo: "Los formatos de Google Doc y los tipos MIME de exportación admitidos se asignan entre sí de la siguiente manera"
También hay otra lista
Tipo de Mimica | Descripción |
---|---|
application/vnd.google-apps.audio |
|
application/vnd.google-apps.document |
Documentos de Google |
application/vnd.google-apps.drawing |
Google Dibujo |
application/vnd.google-apps.file |
Archivo de Google Drive |
application/vnd.google-apps.folder |
Carpeta de Google Drive |
application/vnd.google-apps.form |
Formularios de Google |
application/vnd.google-apps.fusiontable |
Tablas de fusión de Google |
application/vnd.google-apps.map |
Google Mis mapas |
application/vnd.google-apps.photo |
|
application/vnd.google-apps.presentation |
Presentaciones de Google |
application/vnd.google-apps.script |
Secuencias de comandos de aplicaciones de Google |
application/vnd.google-apps.site |
Sitios de Google |
application/vnd.google-apps.spreadsheet |
Hojas de cálculo de Google |
application/vnd.google-apps.unknown |
|
application/vnd.google-apps.video |
|
application/vnd.google-apps.drive-sdk |
Atajo de terceros |
Fuente aquí: https://developers.google.com/drive/v3/web/mime-types
Pero el primero fue más útil para mi caso de uso.