csv - vnd - mime types




What MIME type should I use for CSV? (4)

I've seen application/csv used and also text/csv.

What's the difference? Is there a difference? Does it matter which as long as the request matches something that's available? Are they interchangeable?


RFC 7111

There is an RFC which covers it and says to use text/csv.

This RFC updates RFC 4180.


Excel

Recently I discovered an explicit mimetype for Excel application/vnd.ms-excel. It was registered with IANA in '96. Note the concerns raised about being at the mercy of the sender and having your machine violated.

Media Type: application/vnd.ms-excel

Name Microsoft Excel (tm)

Required parameters: None

Optional parameters: name

Encoding considerations: base64 preferred

Security considerations: As with most application types this data is intended for interpretation by a program that understands the data on the recipient's system. Recipients need to understand that they are at the "mercy" of the sender, when receiving this type of data, since data will be executed on their system, and the security of their machines can be violated.

OID { org-id ms-files(4) ms-excel (3) }

Object type spreadsheet

Comments This Media Type/OID is used to identify Microsoft Excel generically (i.e., independent of version, subtype, or platform format).

I wasn't aware that vendor extensions were allowed. Check out this answer to find out more - thanks starbeamrainbowlabs for the reference.


For anyone struggling with Google API mimeType for *.csv files. I have found the list of MIME types for google api docs files (look at snipped result)

<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>

Source here: https://developers.google.com/drive/v3/web/manage-downloads#downloading_google_documents the table under: "Google Doc formats and supported export MIME types map to each other as follows"

There is also another list

<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>

Source here: https://developers.google.com/drive/v3/web/mime-types

But the first one was more helpful for my use case..

Happy coding ;)


Strange behavior with MS Excel: If i export to "text based, comma-separated format (csv)" this is the mime-type I get after uploading on my webserver:

[name] => data.csv
[type] => application/vnd.ms-excel

So Microsoft seems to be doing own things again, regardless of existing standards: https://en.wikipedia.org/wiki/Comma-separated_values


You should use "text/csv" according to RFC 4180.







mime-types