2008-10-09 2 views
16

최종 사용자의 컴퓨터에 저장하기 위해 응답에 파일을 스트리밍해야합니다. 파일은 일반 텍스트이므로 브라우저에서 텍스트가 표시되지 않도록 어떤 내용 유형을 사용할 수 있습니까?텍스트 응답을 강제로 다운로드 할 콘텐츠 유형은 무엇입니까?

+0

관련 : 응용 프로그램/octet-stream을 파일 다운로드 : [I은 콘텐츠 형식가 필요하십니까? ] (http://stackoverflow.com/q/20508788/95735) –

답변

21

은 안전을하고 모든 브라우저에서 일관된 동작을 보장하기 위해, 그것은 모두를 사용하는 것이 더 일반적이다 :

Content-Type: application/octet-stream 
Content-Disposition: attachment;filename=\"My Text File.txt\" 
+4

text/plain 또는 기타와 같은 관련 콘텐츠 유형을 유지할 수 있도록 콘텐츠 처리 만 필요합니다. –

+1

@MattConnolly'Content-Type' 헤더를 사용하지 않으려한다면 관련 콘텐츠 유형을 * 유지 하시겠습니까? –

+1

잘못된 대답 - http://stackoverflow.com/q/20508788/95735를 참조하십시오. –

6

나는 그렇게 생각하지 않습니다.

Content-Disposition: attachment 헤더를 사용하고 올바른 Content-Type을 사용하십시오.

+0

User-Agent가 Internet Explorer 6 일 때만'Content-Type : application/octet-stream'을 보내십시오 ... –

23

대부분의 경우, 다음과 같은 작업을해야합니다 :

Content-type: application/octet-stream 
Content-Disposition: attachment; filename="myfile.txt" 

가 여전히 텍스트 파일로 표시됩니다 브라우저의 몇 가지 한계 경우가 있지만 주류 브라우저의 아무도 (내가 얘기하지거야 것 일부 MID에 내장 된 브라우저).


편집 :이 답변은 처음 출판되었을 때, 마임 타입 application/octet-stream을 보내는 일부 브라우저에서 다운로드를 트리거 할 수있는 신뢰할 수있는 유일한 방법이었다. 이제 2016 년에 고대 브라우저를 지원할 필요가 없으면 적절한 MIME 유형을 안전하게 지정할 수 있습니다.

+0

콘텐츠에 대해 거짓말을해야합니까 -유형? Content-Disposition을 사용할 수 있다면 더 좋을 것입니다. –

+0

제 경험상 application/octet-stream은 모든 브라우저에서보다 안정적으로 작동합니다. – ceejayoz

+0

^그가 말한 것. text/plain이 사용될 경우 Internet Explorer 6은 텍스트로 표시 할 수 있습니다. –

관련 문제