2012-06-08 2 views
3

기본 MSDN 정보와 몇 가지 자습서를 읽었습니다. 지금까지 배웠던 것부터 ImageHandler.ashx와 PDFHandler.ashx라고 부르는 두 개의 .ashx 핸들러를 만들 수있었습니다. 그들은 당신이 기대하는대로 일합니다 : 이미지 또는 PDF를 각각 반환하십시오. 이 두 핸들러의 경우 ProcessRequest 메서드에서 context.Response.ContentType을 각각 "image/jpeg"및 "application/pdf"로 설정 한 다음 결과를 context.Response.BinaryWrite(bytes)으로 작성합니다. 지금까지는 문제가 없었습니다.모든 파일 형식에 대해 하나의 .ashx 제네릭 처리기가 필요합니까?

그러나 유형에 관계없이 사용자가 파일을 다운로드 할 수 있도록 허용하려고합니다. 모든 파일 형식에 대해 다른 처리기를 실제로 만들어야합니까?

.ashx 파일이 하나 뿐이며 파일 형식 (파일 이름의 하위 문자열을 통해 얻을 수있는)을 기준으로 switch 문을 사용할 수 있습니까? 그렇게해도, .xyz 파일과 같이 표준이 아닌 파일 유형은 무엇입니까? 이 경우 content.Response.ContentType을 어떻게 설정합니까?

답변

3

아니요, 기본 동작이 동일하면 특히 인 여러 핸들러가 필요하지 않습니다. 예. 응답 내용 유형을 설정할 대상을 결정하려는 모든 종류의 논리를 사용할 수 있습니다. 모르는 것을 찾으려면 application/octet-stream을 사용하십시오. 또한 "내용 처리"헤더를 설정하여 브라우저에서 "인라인"으로 표시할지 또는 다운로드로 표시할지 여부와 논리 파일 이름이 무엇인지 제안 할 수있는 기회를 제공해야합니다. 일부 ashx 페이지).

+0

이것은 정확히 내가 필요한 것입니다. 이제 완벽하게 작동합니다. – CptSupermrkt

2

Content-type: application/octet-stream을 설정하고 브라우저가 파일 확장자를 기반으로 수행 할 작업을 처리하도록 할 수 있습니다.

+0

두 가지 큰 대답은 미안하지만 하나만 골라 낼 수 있습니다. – CptSupermrkt