asp net 파일 다운로드 소스

사용자가 양식에 파일을 추가 하 고 Submit 단추를 클릭 하면 HttpRequest 개체를 통해 게시 된 파일에 액세스할 수 있습니다. 현재 요청에 대해 업로드 된 모든 파일은 HttpRequest 속성에 저장 됩니다. 속성은 Hashtable과 비슷하게 작동 하는 httpfilecollection 개체입니다. 문자열이 키로 사용 되 고 반환 되는 값은 httppostpofile 개체입니다. 클래스는 struts의 formfile 클래스에서 제공 하는 것과 비슷한 기능을 제공 합니다. 이 기능은 클라이언트의 컴퓨터에서 디렉터리를 포함 하 여 업로드 된 파일의 이름을 반환 하는 FileName 속성과 같은 httppopostdfile 클래스의 다양 한 속성을 통해 제공 됩니다. 속성은 파일 데이터를 포함 하는 Stream 개체를 반환 합니다. 및 업로드 된 파일의 길이 (바이트)를 반환 하는 contentlength 속성입니다. 클래스와 달리, httppostdfile 클래스에는 지정 된 파일 이름으로 서버에 파일을 저장 하는 saveas () 메서드도 포함 되어 있습니다.

Listing 10에서는 httppostpofile 클래스를 사용 하 여 원본 파일 이름을 사용 하 여 업로드 된 파일을 디스크에 저장 하는 예제를 포함 한다. 이 코드는 폼에 대 한 정보가 들어 있는 HttpRequest 개체에 액세스 해야 하기 때문에이 코드는 다음 ASP.NET 페이지의 Page_Load () 메서드 또는 양식이 전송 된 후 실행 될 다른 모든 코드에 저장 되지만 다음 ASP.NET 페이지가 표시 됩니다. 예를 들어 listing 10의 코드는 목록 9의 action 속성에 의해 참조 되는 afterupload () 메소드를 Page_Load () 메서드에 배치할 수 있다. 코드는 두 번째 마지막 줄까지 작동 합니다. 나는 pdf 파일로 만들어 내는 임시 파일이 있다는 것을 알 수 있다. 하지만 순간 “파일. 다운로드” 그것은 서버에 “웹 페이지를 찾을 수 없습니다” 라고 오류를 던졌습니다 실행 됩니다. 어떤 사람은 내가 코드의 마지막 라인에 (서) 그릇 된 것이 무엇 인지 알아내는 것을 도울 수 있습니까. Listing 1에는 세 가지 주요 단계가 있다.

첫째, 응답 페이지의 MIME 형식을 응용 프로그램/8 진수 스트림으로 설정 하기 위해 response. setcontenttype () 메서드를 사용 합니다. 둘째, 응답을 사용 하 여 myfile .txt의 기본 파일 이름을 제공 하도록 내용 처리 http 헤더를 설정 합니다. 메서드 셋째, 파일을 열고 out. write () 메서드를 사용 하 여 응답 페이지에 바이트 단위 내용을 추가 합니다. 클라이언트가 Listing 1의 코드를 포함 하는 JSP 페이지로 전송 되 면 브라우저의 파일 다운로드 대화 상자가 표시 되 고 myfile .txt를 저장할지 또는 열지 여부를 묻는 메시지가 표시 됩니다. ASP.NET에서 파일을 다운로드 하는 것은 간단 하며 파일을 바이트 단위로 응답 페이지에 복사할 필요가 없습니다. Listing 7에 표시 된 것 처럼 파일의 내용을 런타임에 변경 해야 하는 경우에도 바이트 단위 전송이 가능 하다. 파일을 바이트 단위로 복사 하지 않아도 파일 다운로드 섹션의 jlca 변환에서 발생 한 캐스팅 문제가 제거 됩니다. 파일을 다운로드할 수 있음을 나타내기 위해 http 콘텐츠 형식을 설정 해야 하지만 파일을 바이트 단위로 전송 하는 대신, 목록 8에 표시 된 것 처럼 파일을 전송 하기 위해. writefile () 메서드를 호출 하기만 하면 됩니다.

jlca가 파일 다운로드 코드가 포함 된 JSP 페이지를 변환할 때 결과 Microsoft ASP.NET 페이지는 기능적으로 동일한 것과 매우 가깝습니다. 샘플 JSP 페이지의 경우 jlca는 Listing 6에 표시 된 ASP.NET 코드를 제작 했다. 어떤 경우에만 특정 파일 확장명을 다운로드할 수 있도록 하 고 원하는 다른 확장에 대해이 방법을 사용 하지? 왜냐하면 당신이 (.aspx, .html 등 등)에 어떤 파일을 전달할 수 있습니다이 보안 문제가 되 고, 볼 수 있습니다. 줄 17: ` Dim 경로 문자열 = 서버. mappath (strrequest) ` 파일 개체를 fileinfo 줄 18로 가져오기: MsgBox (“TEST2”) 줄 19: Dim 파일을 파일 서버 줄 20: if 파일에 존재 하는 경우 (strrequest) `-. 다음에 ` 적절 한 헤더를 설정 21: MsgBox (“TEST3”) 앞에서 설명한 것 처럼, 우리는 또한 struts-config 파일 formbean 스트럿 동작과 연결 하도록 변경 해야 합니다.