csv - txt - mime type json
¿Qué tipo de MIME debo usar para CSV? (5)
He visto la application/csv
utilizado y también el text/csv
.
¿Cual es la diferencia? ¿Hay una diferencia? ¿Importa que mientras la solicitud coincida con algo que está disponible? ¿Son intercambiables?
RFC 7111
Hay un RFC que lo cubre y dice usar text/csv
.
Este RFC actualiza el RFC 4180.
Sobresalir
Recientemente descubrí un mimetype explícito para la aplicación Excel / vnd.ms-excel. Fue registrado con IANA en el ''96. Tenga en cuenta las preocupaciones planteadas acerca de estar a merced del remitente y de que su máquina sea violada .
Tipo de medio: aplicación / vnd.ms-excel
Nombre Microsoft Excel (tm)
Parámetros requeridos: Ninguno
Parámetros opcionales: nombre
Consideraciones de codificación: base64 preferido
Consideraciones de seguridad: como con la mayoría de los tipos de aplicaciones, estos datos están diseñados para ser interpretados por un programa que entiende los datos en el sistema del destinatario. Los destinatarios deben comprender que están a la "merced" del remitente cuando reciben este tipo de datos, ya que los datos se ejecutarán en su sistema y la seguridad de sus máquinas puede ser violada.
OID {org-id ms-files (4) ms-excel (3)}
Tipo de objeto de hoja de cálculo
Comentarios Este tipo de medio / OID se usa para identificar Microsoft Excel genéricamente (es decir, independiente del formato de versión, subtipo o plataforma).
No sabía que las extensiones de los proveedores estaban permitidas. Echa un vistazo a esta respuesta para obtener más información: gracias a starbeamrainbowlabs por la referencia.
Comportamiento extraño con MS Excel
: si exporto a "formato basado en texto, separados 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
Así que Microsoft parece estar haciendo cosas propias de nuevo, independientemente de los estándares existentes: https://en.wikipedia.org/wiki/Comma-separated_values
Debe utilizar "text / csv" de acuerdo con RFC 4180 .
Mis usuarios pueden cargar archivos CSV y text/csv
y la application/csv
no apareció por ahora. Estos son los identificados a través de 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 aparecían, pero podían:
application/csv
application/x-csv
text/csv
text/comma-separated-values
text/x-comma-separated-values
text/tab-separated-values
Para cualquier persona que tenga problemas con el API mimeType de Google para archivos * .csv. He encontrado la lista de tipos MIME para los archivos de google api docs (mira el resultado cortado)
<table border="1">
<thead>
<tr>
<th>Google Doc Format</th>
<th>Conversion Format</th>
<th>Corresponding MIME type</th>
</tr>
</thead>
<tbody>
<tr>
<td>Documents</td>
<td>HTML</td>
<td>text/html</td>
</tr>
<tr>
</tr><tr>
<td></td>
<td>HTML (zipped)</td>
<td>application/zip</td>
</tr>
<tr>
<td></td>
<td>Plain text</td>
<td>text/plain</td>
</tr>
<tr>
<td></td>
<td>Rich text</td>
<td>application/rtf</td>
</tr>
<tr>
<td></td>
<td>Open Office doc</td>
<td>application/vnd.oasis.opendocument.text</td>
</tr>
<tr>
<td></td>
<td>PDF</td>
<td>application/pdf</td>
</tr>
<tr>
<td></td>
<td>MS Word document</td>
<td>application/vnd.openxmlformats-officedocument.wordprocessingml.document
</td>
</tr>
<tr>
<td></td>
<td>EPUB</td>
<td>application/epub+zip
</td>
</tr>
<tr>
<td>Spreadsheets</td>
<td>MS Excel</td>
<td>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</td>
</tr>
<tr>
<td></td>
<td>Open Office sheet</td>
<td>application/x-vnd.oasis.opendocument.spreadsheet</td>
</tr>
<tr>
<td></td>
<td>PDF</td>
<td>application/pdf</td>
</tr>
<tr>
<td></td>
<td>CSV (first sheet only)</td>
<td>text/csv</td>
</tr>
<tr>
<td></td>
<td>TSV (first sheet only)</td>
<td>text/tab-separated-values</td>
</tr>
<tr>
<td></td>
<td>HTML (zipped)</td>
<td>application/zip</td>
</tr>
<tr></tr><tr>
<td>Drawings</td>
<td>JPEG</td>
<td>image/jpeg</td>
</tr>
<tr>
<td></td>
<td>PNG</td>
<td>image/png</td>
</tr>
<tr>
<td></td>
<td>SVG</td>
<td>image/svg+xml</td>
</tr>
<tr>
<td></td>
<td>PDF</td>
<td>application/pdf</td>
</tr>
<tr>
<td>Presentations</td>
<td>MS PowerPoint</td>
<td>application/vnd.openxmlformats-officedocument.presentationml.presentation
</td>
</tr>
<tr>
<td></td>
<td>Open Office presentation</td>
<td>application/vnd.oasis.opendocument.presentation</td>
</tr>
<tr></tr><tr>
<td></td>
<td>PDF</td>
<td>application/pdf</td>
</tr>
<tr>
<td></td>
<td>Plain text</td>
<td>text/plain</td>
</tr>
<tr>
<td>Apps Scripts</td>
<td>JSON</td>
<td>application/vnd.google-apps.script+json</td>
</tr>
</tbody>
</table>
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.
<table border="1">
<thead>
<tr>
<th>MIME Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code><span>application/vnd.<wbr>google-apps.<wbr>audio</span></code></td>
<td></td>
</tr>
<tr>
<td><code><span>application/vnd.<wbr>google-apps.<wbr>document</span></code></td>
<td>Google Docs</td>
</tr>
<tr>
<td><code><span>application/vnd.<wbr>google-apps.<wbr>drawing</span></code></td>
<td>Google Drawing</td>
</tr>
<tr>
<td><code><span>application/vnd.<wbr>google-apps.<wbr>file</span></code></td>
<td>Google Drive file</td>
</tr>
<tr>
<td><code><span>application/vnd.<wbr>google-apps.<wbr>folder</span></code></td>
<td>Google Drive folder</td>
</tr>
<tr>
<td><code><span>application/vnd.<wbr>google-apps.<wbr>form</span></code></td>
<td>Google Forms</td>
</tr>
<tr>
<td><code><span>application/vnd.<wbr>google-apps.<wbr>fusiontable</span></code></td>
<td>Google Fusion Tables</td>
</tr>
<tr>
<td><code><span>application/vnd.<wbr>google-apps.<wbr>map</span></code></td>
<td>Google My Maps</td>
</tr>
<tr>
<td><code><span>application/vnd.<wbr>google-apps.<wbr>photo</span></code></td>
<td></td>
</tr>
<tr>
<td><code><span>application/vnd.<wbr>google-apps.<wbr>presentation</span></code></td>
<td>Google Slides</td>
</tr>
<tr>
<td><code><span>application/vnd.<wbr>google-apps.<wbr>script</span></code></td>
<td>Google Apps Scripts</td>
</tr>
<tr>
<td><code><span>application/vnd.<wbr>google-apps.<wbr>site</span></code></td>
<td>Google Sites</td>
</tr>
<tr>
<td><code><span>application/vnd.<wbr>google-apps.<wbr>spreadsheet</span></code></td>
<td>Google Sheets</td>
</tr>
<tr>
<td><code><span>application/vnd.<wbr>google-apps.<wbr>unknown</span></code></td>
<td></td>
</tr>
<tr>
<td><code><span>application/vnd.<wbr>google-apps.<wbr>video</span></code></td>
<td></td>
</tr>
<tr>
<td><code><span>application/vnd.<wbr>google-apps.<wbr>drive-sdk</span></code></td>
<td>3rd party shortcut</td>
</tr>
</tbody>
</table>
Fuente aquí: https://developers.google.com/drive/v3/web/mime-types
Pero el primero fue más útil para mi caso de uso.
Feliz codificación;)