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.