CSV에 어떤 MIME 유형을 사용해야합니까?


454

나는 application/csv또한 사용하는 것을 보았습니다 text/csv.

차이점이 뭐야? 차이가 있습니까? 요청이 사용 가능한 것과 일치하는 한 중요합니까? 그들은 상호 교환이 가능합니까?

답변:


623

RFC 7111

그것을 커버하고 사용한다고 말하는 RFC 가있다 text/csv.

이 RFC는 RFC 4180을 업데이트합니다.


뛰어나다

최근 Excel 응용 프로그램 / vnd.ms-excel에 대한 명시 적 mimetype을 발견했습니다. IANA 에 96 년에 등록되었습니다 . 발신자 의 자비 와 기계 위반에 대한 우려를 주목하십시오 .

미디어 유형 : 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

7
@Pablo Windows 컴퓨터에 Excel이 설치되어 있으며 메모장 ++에서 CSV를 만들면 MIME 유형의 application / vnd.ms-excel이 할당됩니다. 직접 시도하고 mime.ritey.com
— pjd

20
Notepad ++는 mime 유형을 "할당"하지 않으며 사용하는 서비스가 해당 유형을 지정합니다.
— Pablo Pazos

14
와, 많은 사람들이의 언급에 상처를 입었습니다 vnd.ms-excel. +1, 한 가지 흥미로운 점이라고 생각했습니다.;)
— Wesley Smith

95

RFC 4180 에 따라 "text / csv"를 사용해야합니다 .


1
"text / csv"는 ".txt"파일도 허용합니까? ".csv"파일 형식 만 허용하기 위해 서버 측에서 유효성 검사를 적용하려고합니다. 그러나 ".txt"파일도 승인됩니다. 확인하십시오.
— SukanyaPai

1
죄송하지만 지금까지 귀하의 질문을 보지 못했습니다. RFC 4180은 확장자가 .csv 여야합니다. 그럼에도 불구하고, 당신이 알 수있는 것은 엄격한 요구 사항이 아닙니다. RFC 4180의 구현을 중단 할 수는 있지만 개인적으로는 그렇게 할 수 없습니다. 응용 프로그램의 가독성을 방해하기 때문입니다.
— Smokefoot

47

이상한 동작 MS Excel: "텍스트 기반, 쉼표로 구분 된 형식 ( csv)" 으로 내보내는 경우 웹 서버에 업로드 한 후 얻는 mime 유형입니다.

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

따라서 Microsoft는 기존 표준에 관계없이 다시 자체 작업을 수행하는 것 같습니다. https://en.wikipedia.org/wiki/Comma-separated_values


4
웹 클라이언트가 보낸 MIME 유형을 일반적으로 신뢰할 수는 없습니다.
— Chris Seufert

5
파일 확장자를 mime 유형으로 매핑하는 웹 서버 구성 때문입니다. Microsoft IIS는 웹 서버에 설치된 경우 Excel 설치로 채워지는 서버 레지스트리를 사용해야합니다.
— Andrew Russell

5
"기존의 표준"이 2005 년 10 월에 작성된 RFC 4180에서 CSV를 정의하기로 결정했을 때 이미 사용중인 것을 무시하기로 결정했다는 사실을 고려할 때 미래에 뛰어 들지 않은 것에 대해 Microsoft를 비난하는 것은 어리석은 일입니다. 표준 기관이 무엇을 결정했는지 확인한 다음 1985 년에 Excel을 처음 작성할 때이를 다시 사용하십시오. 어떤 버전의 Excel을 설치하고 있습니까?
— Robert McKee 2016 년

1
무엇보다도 Excel은 CSV 파일의 필드 값을 엉망으로 만듭니다.
— Ronnie Overby

35

내 사용자는 CSV 파일을 업로드 할 수 있으며 text/csv그리고 application/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 형식으로 무엇을 보낼지 추측합니다. 관계없는 것을 거부 할 수는 있지만 파일의 실제 내용을주의 깊게 확인하는 것이 업로드 된 내용을 확인하는 유일한 방법입니다.
— Tetsujin no Oni 2012

텍스트 / 탭으로 구분 된 값은 기술적으로 CSV 파일이 아닙니다. 또는 쉼표로 구분 된 데이터에도 사용할 수 있습니까?
— Arthur

@Arthur 추가 TSV 파일 범주를 사용하십시오. 많은 프로그램이 어떤 구분 기호를 사용하고 PHP가 가장 많이 사용되는 서버 측 언어이므로 CSV 용어도 기능에서만 사용하기 때문에 많은 프로그램이 .csv 확장자를 가진 파일을 생성하기 때문에 다른 용어는 무시합니다. "문자로 구분 된 파일"이라고
— 부르면

0

* .csv 파일 용 Google API mimeType으로 어려움을 겪고있는 모든 사람에게 적합합니다. Google API 문서 파일의 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 문서 형식과 지원되는 내보내기 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

그러나 첫 번째는 내 사용 사례에 더 도움이되었습니다.

행복한 코딩;)


스택 오버플로 규칙은 다른 플랫폼에 대한 링크가없는 답변을 포함해야합니다.
— paul_h

@paul_h 싶습니다. 그러나 SO가 현재 테이블을 지원하지 않기 때문에 해당 테이블을 SO에 적합한 형식으로 포맷하는 방법을 알려주십시오.
— Luckylooke

1
@paul_h 나는 길을 찾았습니다, 당신이 그것을 좋아 바랍니다;)
— Luckylooke

플러스 때문에 :) 예쁜 형식의 테이블 중 하나
— 스테인 드 위트
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.