CSVにはどのMIMEタイプを使用すればよいですか?


454

application/csv中古品も見たことがありtext/csvます。

違いは何ですか?違いはありますか?リクエストが利用可能なものと一致する限り、どちらが問題になりますか?それらは交換可能ですか?

回答:


623

RFC 7111

それをカバーし、使用するように言うRFCがありますtext/csv

このRFCはRFC 4180を更新します。


エクセル

最近、Excel application / vnd.ms-excelの明示的なMIMEタイプを発見しました。これは、'96年にIANAに登録されました。送信者のなすがままになっていて、あなたのマシンが侵害されていることについての懸念に注意してください

メディアタイプ:application / vnd.ms-excel

Microsoft Excel(tm)に名前を付けます

必須パラメーター:なし

オプションのパラメーター:名前

エンコーディングに関する考慮事項:base64を推奨

セキュリティに関する考慮事項:ほとんどのアプリケーションタイプと同様に、このデータは、受信者のシステム上のデータを理解するプログラムによる解釈を目的としています。このタイプのデータを受信する場合、受信者は送信者の「慈悲」にあることを理解する必要があります。これは、データがシステム上で実行され、マシンのセキュリティが侵害される可能性があるためです。

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

オブジェクトタイプスプレッドシート

コメントこのメディアタイプ/ OIDは、Microsoft Excelを一般的に(つまり、バージョン、サブタイプ、またはプラットフォームフォーマットとは無関係に)識別するために使用されます。

ベンダー拡張が許可されていることを知りませんでした。詳細については、この回答を確認してください-starbeamrainbowlabsを参考にしてください。


39
CSVはテキストファイル形式ですが、なぜExcelがそれと関係があるのですか、または何か不足していますか?
JimmyPena

25
プログラムがファイルの種類を開くことは、そのファイルの種類に関連付けられたMIMEの種類とは何の関係もありません。
Pablo Pazos 2015

7
@Pablo WindowsマシンにExcelをインストールし、Notepad ++でCSVを作成すると、application / vnd.ms-excelのMIMEタイプが割り当てられます。自分で試してMIMEタイプをmime.ritey.com
pjd

20
Notepad ++はMIMEタイプを「割り当て」ません。使用するサービスがMIMEタイプを割り当てます。
Pablo Pazos 2015

14
うわー、多くの人がの言及に腹を立てvnd.ms-excelます。+1、私はそれを興味深いサイドノートだと思っていました;)
ウェスリー・スミス

95

RFC 4180に従って、「text / csv」を使用する必要があります。


1
「text / csv」は「.txt」ファイルも受け入れますか?「.csv」ファイルタイプのみを受け入れるようにサーバー側で検証を適用する作業をしています。ただし、「。txt」ファイルも受け入れられます。確認してください。
SukanyaPai

1
申し訳ありませんが、これまでのところあなたの質問を見ていません。RFC 4180は、拡張子が.csvであることを確認します。それにもかかわらず、あなたは知っているかもしれませんが、それは厳密な要件ではありません。あなたはRFC 4180の実装を壊すことができますが、それはアプリケーションの読みやすさを妨げているので、個人的には私はそれをしません。
スモークフット

47

奇妙な動作MS Excel:「テキストベースのカンマ区切り形式(csv)」にエクスポートする場合、これはWebサーバーにアップロードした後に取得するMIMEタイプです。

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

したがって、Microsoftは既存の標準に関係なく、再び独自のことをしているようです:https : //en.wikipedia.org/wiki/Comma-separated_values


4
Webクライアントから送信されるMIMEタイプは、一般的には単なるガイドであり、本当に信頼することはできません。
Chris Seufert、2015

5
これは、ファイル拡張子をMIMEタイプにマップするWebサーバーの構成によるものです。Microsofts IISは、このためにサーバーレジストリを使用する必要があります。これは、ExcelがWebサーバーにインストールされている場合、Excelインストールによって入力されます。
Andrew Russell、

5
まあ... 2005年10月に書かれたRFC 4180でCSVを定義することを決定したとき、「既存の標準」がすでに使用されているものを無視することを決定したことを考えると、Microsoftが未来に飛び込もうとしなかったのはばかげたことでしょう標準化団体が何を決定するかを確認し、1985年に最初にExcelを作成したときにそれを使用します。インストールするExcelのバージョンは何ですか?
Robert McKee

1
何よりも、ExcelはCSVファイルのフィールド値を壊します。
ロニー・オーバービー

35

私のユーザーはCSVファイルのアップロードを許可されておりtext/csvapplication/csv今では表示されません。これらはfinfo()によって識別されたものです:

text/plain
text/x-csv

そして、これらはブラウザを介して送信されるものです:

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

次のタイプは表示されませんでしたが、可能性があります:

application/csv
application/x-csv
text/csv
text/comma-separated-values
text/x-comma-separated-values
text/tab-separated-values

1
ブラウザーは、アップロード中にファイルのMIMEタイプとして何を送信するかを推測します。何もしたくない手に負えないものを拒否することはできますが、ファイルの実際のコンテンツを注意深くチェックすることが、何がアップロードされたかを確認する唯一の方法です。
鉄人の鬼

text / tab-separated-valuesは技術的にはCSVファイルではありません。それとも、コンマ区切りのデータでも取得できるということですか?
Arthur

@Arthur追​​加のTSVファイルカテゴリを自由に使用してください。他の用語は無視します。多くのプログラムは、使用される区切り文字に関係なく.csv拡張子のファイルを作成し、PHPは-最も使用されているサーバー側言語として-関数でもCSVという用語のみを使用するためです。「文字区切りファイル」と呼んでも問題ありません;)
mgutt 2018年

0

* .csvファイルのGoogle API mimeTypeで苦労している人のために。私はgoogle api docsファイルのMIMEタイプのリストを見つけました(抜粋した結果を見てください)

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

ソース:https : //developers.google.com/drive/v3/web/manage-downloads#downloading_google_documents 下の表:「Google Doc形式とサポートされているエクスポートMIMEタイプは、次のように相互にマッピングされています」

別のリストもあります

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

ソース:https : //developers.google.com/drive/v3/web/mime-types

しかし、最初の方が私のユースケースにとってより役に立ちました。

幸せなコーディング;)


Stackoverflowルールは、他のプラットフォームへのリンクなしに回答をインラインで含めることです。
paul_h

@paul_h希望しますが、SOは現在テーブルをサポートしていないため、これらのテーブルをSOの適切な形式にフォーマットする方法を教えてください。
Luckylooke

1
@paul_h私は方法を見つけました、あなたがそれを気に入ってくれることを願っています;)
Luckylooke

それに加えて、きれいにフォーマットされたテーブルのために1つ:)
Stijn de Witt '
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.