내 개인 사이트 (http://www.sharkcode.com)에서, 나는 사용자가 마이크로 소프트 워드, HTML, 풍부한 텍스트와 일반 텍스트를 포함한 다양한 형식으로 내 이력서를 다운로드 할 수 있습니다. 대부분의 사용자 (IE)의 경우 올바른 응용 프로그램이 브라우저 내에서 문서를 보는 데 자동으로 사용되었습니다 (예 : .doc 와 같은 Word 유형). 그러나 모든 경우에 단순히 브라우저에 표시되는 것이 아니라 파일을 클라이언트의 워크스테이션에 저장하기를 원했습니다. 내 자신의 사이트를 호스팅 할 때 HTTP 헤더를 “콘텐츠 처리”로 설정하여 파일 다운로드 대화 상자를 강제로 수행 할 수 있습니다. 이제 .NET Response 개체를 사용하여 이러한 헤더를 직접 설정할 수 있습니다. 여기에 내가 자주 듣는 일반적인 질문이 있습니다 : “어떻게 웹 사이트에서 파일을 다운로드하지만, 브라우저에 표시하는 대신 저장할 수있는 파일로 볼 수 있습니다 (즉,. 대화 상자로 저장 참조)?” 먼저 HttpStatusCode.OK를 반환한 다음 콘텐츠를 StringContent로 설정하고 콘텐츠를 스트림 과 같은 다른 많은 것들로 설정할 수 있습니다. 그런 다음 콘텐츠 유형을 `응용 프로그램/옥텟 스트림`으로 설정하여 다운로드한 파일이 파일을 열고 읽을 수 있는 프로그램과 연결되어 있음을 의미합니다. 그런 다음 `첨부 파일`의 콘텐츠 처리 유형을 만들어 브라우저에 저장 파일 대화 상자를 사용하여 파일을 저장하도록 지시합니다. 이를 위해 ContentDispositionHeaderValue 클래스를 사용합니다.

ContentDisposition은 null이므로 초기화하고 구성해야 합니다. 이전 예제는 가장 효율적인 TransmitFile()을 사용하지만 항상 작업할 파일이 없는 경우 또는 TransmitFile()이 허용하지 않는 웹 사이트의 디렉터리 구조 외부에 있는 파일이 있을 수 있습니다. 다행히 코드에서 클라이언트에 바이너리 데이터를 보낼 수 있는 다른 방법이 ASP.NET. 파일을 이동한 후에는 인증된 사용자에게 파일을 제공할 수 있는 수단이 필요하며 HttpHandler가 작업을 쉽게 수행합니다. 그냥 추가로 이동 … 새 항목을 선택하고 제네릭 처리기를 선택합니다. 다음과 같은 코드가 포함된 .ashx 확장인이 있는 새 파일을 만나야 합니다 ASP.NET. 이 예제는 텍스트 콘텐츠에 중점을 두는 예제입니다.

asp.net 파일 강제 다운로드