2015-01-09 1 views
2

나는 쿼리 문자열 매개 변수를 추출하는 IHttpHandler를 작성하고이를 사용하여 어떤 유형의 파일을 다시 보낼지 결정합니다. 핸들러에서 나는 전화 :Asp.Net을 사용하여 파일 다운로드 IHttpHandler는 다른 파일 속성 결과를 제공합니다.

private static void GetSegmentFile(HttpContext context) 
{ 
    byte[] file = GetFile(); 
    context.Response.ContentyType = "application/octet-stream"; 
    context.Response.BinaryWrite(file); 
} 

를 브라우저 측에서 파일을 다운로드 할 때 내가 가진 웹 페이지의 웹에서 링크로 저장 (> 마우스 오른쪽 버튼으로 클릭을 사용하여 서로 다른 결과를 얻을 파일의 URL에 HREF 세트입니다).

크롬 : 파일이 원본 파일 이름과 파일 확장자 IE (11) : 파일이 .zip 파일 확장자 media로 이름이 변경이 내 결과되는 test.docx를 사용.

나는 무슨 뜻인지 보여주는 이미지를 첨부했습니다. enter image description here

+1

두 파일이 서로 다른 것 같습니다 (브라우저 및 코드). 두 경로가 동일해야합니다. –

+0

화면 캡처를 위해 탐색기 창을 조금 더 작게 만들 수 없습니까? : P – DLeh

+0

무엇을 마우스 오른쪽 버튼으로 클릭할까요? 어떻게 지내요? Btw. Content-Disposition 헤더가 없습니까? –

답변

1

Content-Disposition HTTP 헤더를 보내야합니다. 그렇게하면 파일 이름을 보낼 수 있습니다. IE는 전송 한 바이트를 해석하려고 시도했는데 그것이 zip 파일이라는 것을 알았습니다. Office 문서는 다른 확장명의 zip 파일입니다.

크롬은 경험적으로 URL을 사용하여 이름을 구성합니다.

명시 적 이름없이 브라우저에서 무엇을해야합니까? 그것은 단지 추측 할 수 있습니다.

HTTP 헤더를 사용하여 파일 이름을 보내고 이름을 지정하는 올바른 방법을 연구하십시오.

관련 문제