Welchen MIME-Typ soll ich für CSV verwenden?

454

Ich habe application/csvgebraucht und auch gesehen text/csv.

Was ist der Unterschied? Ist da ein Unterschied? Ist es wichtig, welche, solange die Anfrage mit etwas übereinstimmt, das verfügbar ist? Sind sie austauschbar?

Steve Dunn
quelle

Antworten:

623

RFC 7111

Es gibt einen RFC, der es abdeckt und sagt, zu verwenden text/csv.

Dieser RFC aktualisiert RFC 4180.


Excel

Kürzlich habe ich einen expliziten Mimetyp für die Excel-Anwendung / vnd.ms-excel entdeckt. Es wurde '96 bei IANA registriert . Beachten Sie die Bedenken, dem Absender ausgeliefert zu sein und Ihre Maschine zu verletzen .

Medientyp: application / vnd.ms-excel

Nennen Sie Microsoft Excel (tm)

Erforderliche Parameter: Keine

Optionale Parameter: Name

Überlegungen zur Codierung: base64 bevorzugt

Sicherheitsüberlegungen: Wie bei den meisten Anwendungstypen sind diese Daten für die Interpretation durch ein Programm vorgesehen, das die Daten auf dem System des Empfängers versteht. Empfänger müssen verstehen, dass sie beim Empfang dieser Art von Daten der "Gnade" des Absenders ausgeliefert sind, da Daten auf ihrem System ausgeführt werden und die Sicherheit ihrer Computer verletzt werden kann.

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

Objekttyp-Tabelle

Kommentare Dieser Medientyp / diese OID wird verwendet, um Microsoft Excel generisch zu identifizieren (dh unabhängig von Version, Subtyp oder Plattformformat).

Mir war nicht bewusst, dass Herstellererweiterungen zulässig waren. Schauen Sie sich diese Antwort an, um mehr zu erfahren - danke starbeamrainbowlabs für die Referenz.

Chris McCauley
quelle
39
CSV ist ein Textdateiformat. Warum sollte Excel etwas damit zu tun haben oder fehlt mir etwas?
JimmyPena
25
Dass ein Programm einen Dateityp öffnet, hat nichts mit dem zugehörigen MIME-Typ dieses Dateityps zu tun.
Pablo Pazos
7
@Pablo Ich habe Excel auf einem Windows-Computer installiert, und beim Erstellen einer CSV in Notepad ++ wird ein MIME-Anwendungstyp / vnd.ms-excel zugewiesen. Probieren Sie es aus und überprüfen Sie Ihren MIME-Typ unter mime.ritey.com
pjd
20
Notepad ++ "weist" keinen MIME-Typ zu, der von Ihnen verwendete Dienst weist ihn zu.
Pablo Pazos
14
Wow, viele Leute tun weh wegen der Erwähnung von vnd.ms-excel. +1, ich dachte, es wäre eine interessante Randnotiz;)
Wesley Smith
95

Sie sollten "text / csv" gemäß RFC 4180 verwenden .

Rauchfuß
quelle
1
Akzeptiert "text / csv" auch ".txt" -Dateien? Ich arbeite daran, die Validierung auf der Serverseite anzuwenden, um nur ".csv" -Dateitypen zu akzeptieren. Aber die ".txt" -Dateien werden auch akzeptiert. Bitte bestätigen Sie.
SukanyaPai
1
Entschuldigung, aber ich habe Ihre Frage bisher noch nicht gesehen. RFC 4180 stellt sicher, dass die Erweiterung .csv sein sollte. Trotzdem wissen Sie vielleicht, dass dies keine strenge Anforderung ist. Sie können die Implementierung des RFC 4180 unterbrechen, aber ich persönlich würde das nicht tun, da dies die Lesbarkeit der Anwendung stört.
Rauchfuß
47

Seltsames Verhalten mit MS Excel: Wenn ich in "textbasiertes, durch Kommas getrenntes Format ( csv)" exportiere, ist dies der MIME-Typ, den ich nach dem Hochladen auf meinen Webserver erhalte:

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

Microsoft scheint also unabhängig von den bestehenden Standards wieder eigene Dinge zu tun: https://en.wikipedia.org/wiki/Comma-separated_values

Robert
quelle
4
Sie können dem Mime-Typ, der von Web-Clients gesendet wird, nicht wirklich vertrauen, er ist im Allgemeinen nur eine Anleitung.
Chris Seufert
5
Dies liegt an der Konfiguration des Webservers, der die Dateierweiterung dem MIME-Typ zuordnet. Microsoft IIS sollte hierfür die Serverregistrierung verwenden, die von der Excel-Installation ausgefüllt wird, wenn sie auf dem Webserver installiert ist.
Andrew Russell
5
Nun ... In Anbetracht der Tatsache, dass der "bestehende Standard" beschlossen hat, das zu ignorieren, was bereits verwendet wurde, als sie beschlossen, CSV in RFC 4180 zu definieren, das im Oktober 2005 geschrieben wurde, wäre es dumm, Microsoft die Schuld zu geben, nicht in die Zukunft zu springen Sehen Sie, was die Normungsbehörde entscheidet, und verwenden Sie diese dann, als sie 1985 zum ersten Mal Excel geschrieben haben. Welche Version von Excel installieren Sie?
Robert McKee
1
Zusätzlich zu allem anderen wird Excel die Feldwerte in einer CSV-Datei entstellen.
Ronnie Overby
35

Meine Benutzer dürfen CSV-Dateien hochladen text/csvund application/csvwurden bisher nicht angezeigt. Dies sind diejenigen, die durch finfo () identifiziert wurden :

text/plain
text/x-csv

Und diese werden über den Browser übertragen:

text/plain
application/vnd.ms-excel
text/x-csv

Die folgenden Typen wurden nicht angezeigt, konnten jedoch:

application/csv
application/x-csv
text/csv
text/comma-separated-values
text/x-comma-separated-values
text/tab-separated-values
mgutt
quelle
1
Browser raten, was beim Hochladen als MIME-Typ einer Datei gesendet werden soll. Sie können sofort abgelehnte Dateien ablehnen, mit denen Sie nichts zu tun haben möchten. Nur wenn Sie den tatsächlichen Inhalt der Datei sorgfältig prüfen, können Sie sicher sein, was hochgeladen wurde.
Tetsujin no Oni
Text- / Tabulator-getrennte Werte sind technisch gesehen keine CSV-Dateien. oder meinst du, du kannst es auch für durch Kommas getrennte Daten bekommen?
Arthur
@Arthur Sie können gerne eine zusätzliche TSV-Dateikategorie verwenden. Ich ignoriere die anderen Begriffe, da viele Programme eine Datei mit der Erweiterung .csv erstellen, unabhängig davon, welches Trennzeichen verwendet wird, und PHP - als die am häufigsten verwendete serverseitige Sprache - den Begriff CSV auch nur in seinen Funktionen verwendet. Nenne es "
zeichengetrennte
0

Für alle, die mit der Google API mimeType für * .csv-Dateien zu kämpfen haben. Ich habe die Liste der MIME-Typen für Google API-Dokumentdateien gefunden (siehe abgeschnittenes Ergebnis).

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

Quelle hier: https://developers.google.com/drive/v3/web/manage-downloads#downloading_google_documents Die Tabelle unter: "Google Doc-Formate und unterstützte Export-MIME-Typen werden wie folgt aufeinander abgebildet."

Es gibt auch eine andere Liste

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

Quelle hier: https://developers.google.com/drive/v3/web/mime-types

Aber der erste war hilfreicher für meinen Anwendungsfall.

Viel Spaß beim Codieren;)

Luckylooke
quelle
Stackoverflow-Regeln sollen Antworten enthalten, die keinen Link zu anderen Plattformen enthalten.
Paul_h
@paul_h Ich würde gerne, aber bitte sagen Sie mir, wie ich diese Tabellen für SO in eine vernünftige Form formatieren soll, da SO derzeit keine Tabellen unterstützt.
Luckylooke
1
@paul_h Ich habe den Weg gefunden, hoffe es gefällt euch;)
Luckylooke
Plus eins wegen der hübsch formatierten Tabellen :)
Stijn de Witt