2010-02-02 2 views
1

브라우저를 통해 스트림으로 zip 파일을 반환하려고합니다. 다른 유형의 파일 (예 : 엑셀 파일)에서도 정상적으로 작동하지만 zip 파일을 다루기 시작하면 브라우저에서 지퍼임을 인식하지 못합니다.Zip MIME 유형이 인식되지 않는 것으로 나타납니다.

Firefox와 IE 모두 내 테스트 컴퓨터 프롬프트에서 파일을 열 프로그램을 묻는 중입니다. 탐색기는 zip 파일 연결의 기본값으로 설정됩니다.

는 IE 매우 다시보고하지 않습니다

는, 파이어 폭스는 그러나 파일 형식이 지금까지 내가 말할 수있는 올바른 MIME 타입 인

응용 프로그램/우편

무엇인지 알려줍니다 zip 파일 용. 내가 설정하지 않은 유일한 것은 확장입니다. 그래서 파일은 단지 'Test.zip'이 아니라 'Test'라고 불리 웠습니다. 그러나 mime 유형에 의해 모두 알아 내야한다는 것을 알고있었습니다.

누구나 잘못된 정보가있을 수 있습니다.

답변

4

당신은 파일 확장자가 포함되어 보장으로 파일을 전송해야합니다

Content-disposition: attachment; filename=Test.zip

을 헤더로. C#에서

: 당신은 MIME 유형을 수정 할 수있는 경우

Response.ContentType = "application/zip"; 
Response.AddHeader("Content-Length", contentLength.ToString()); 
Response.AddHeader("Content-disposition", "attachment; filename=" + fileName); 

if (Request.UserAgent.Contains("MSIE")) 
{ 
    Response.AddHeader("Content-Transfer-Encoding", "binary"); 
} 
+0

John, 응답 해 주셔서 감사합니다. 콘텐츠 유형 및 콘텐츠 처리가 이미 설정되었지만 작동하지 않습니다. 나는 그 길이가 발견 된 타입에 차이를 만들지 않는다고 생각하고 있으며, 파이어 폭스가 전송 인코딩이 탓할 것인가에 대해서도 확신하지 못하고있다. – Ian

+0

@Ian : 코드를 게시 할 수 있습니까? –

+0

불행히도 코드를 게시하는 것은 실제로는 선택 사항이 아니 었습니다. 왜냐하면 코드가 상당히 깊은 클래스 계층을 통해 퍼져 있기 때문입니다. 당신은 대답이 거의 정확합니다. 나는 파일 확장자를 놓치고 있었지만 IE에서 대소 문자를 구분하므로 "Content-disposition"에도 소문자 'd'가 있어야합니다. 그 변화 후에 그것은 모두 효과가있었습니다. – Ian

0

가, 응용 프로그램/X-우편을 시도합니다.

+1

mime 유형은 바꿀 수 있지만, application/x-zip은 ZIP 표준이 아니다. – Ian

관련 문제