FileUpload 웹 서버 컨트롤 개요
업데이트: 2007년 11월
FileUpload 컨트롤을 사용하면 사용자가 파일을 컴퓨터에서 서버로 보내도록 할 수 있습니다.
이 항목의 내용은 다음과 같습니다.
기능
배경
코드 예제
클래스 참조
기능
FileUpload 컨트롤을 사용하여 다음과 같은 작업을 수행할 수 있습니다.
사용자가 서버의 특정 위치에 저장되는 파일을 업로드할 수 있도록 허용
업로드할 수 있는 파일의 크기 제한
파일을 저장하기 전에 업로드된 파일의 속성 검사
맨 위로 이동
배경
FileUpload 컨트롤을 사용하면 사용자가 그림, 텍스트 파일 또는 기타 파일을 업로드할 수 있습니다. FileUpload 컨트롤은 사용자가 서버에 업로드할 파일 이름을 입력할 수 있는 텍스트 상자를 표시합니다. 또한 이 컨트롤은 파일 탐색 대화 상자를 표시하는 찾아보기 단추를 표시합니다. 대화 상자는 사용자 컴퓨터의 운영 체제에 따라 다르게 표시됩니다. 보안상의 이유로 파일 이름을 FileUpload 컨트롤에 미리 로드할 수 없습니다.
업로드된 파일 처리
사용자가 업로드할 파일을 선택한 다음 페이지를 전송하면 파일이 요청의 일부로 업로드됩니다. 이 파일은 그대로 서버 메모리에 캐싱됩니다. 파일 업로드가 완료되면 페이지 코드가 실행됩니다.
다음 방법을 통해 업로드된 파일에 액세스할 수 있습니다.
FileUpload 컨트롤의 FileBytes 속성에 노출되는 바이트 배열로
FileContent 속성에 노출되는 스트림으로
PostedFile 속성의 HttpPostedFile 형식 개체로. PostedFile 개체는 ContentType 및 ContentLength 속성 등의 속성을 노출하는데, 이러한 속성을 통해 업로드된 파일에 대한 정보가 제공됩니다.
코드를 실행하면 파일 이름, 크기 및 MIME 형식 같은 파일의 특성을 검사한 다음 저장할 수 있습니다. 파일은 바이트 배열 또는 스트림으로 작업할 수 있습니다. 또한 FileUpload 컨트롤과 HttpPostedFile 개체는 모두 파일을 디스크에 쓰는 SaveAs 메서드를 지원합니다.
업로드된 파일을 저장할 수 있는 위치에 대한 기본적인 제한은 없습니다. 그러나 파일을 저장하려면 ASP.NET 프로세스가 지정된 위치에 파일을 만들 수 있는 권한을 가지고 있어야 합니다. 또한 보안을 유지하기 위해 파일을 저장할 때 상대 경로가 아닌 절대 경로를 요구하도록 응용 프로그램을 구성할 수 있습니다. httpRuntime 구성 요소의 requireRootedSaveAsPath 특성을 기본값인 true로 설정하면 업로드된 파일을 저장할 때 절대 경로를 지정해야 합니다.
참고: |
---|
HttpServerUtility 클래스의 MapPath 메서드를 사용하여 이 메서드에 응용 프로그램의 루트 폴더를 나타내는 물결표(~) 연산자를 전달하면 응용 프로그램의 루트를 기반으로 절대 경로를 만들 수 있습니다. 자세한 내용은 ASP.NET 웹 사이트 경로를 참조하십시오. |
업로드할 수 있는 최대 파일 크기는 MaxRequestLength 구성 설정 값에 따라 다릅니다. 사용자가 최대 허용 크기보다 큰 파일을 업로드하면 업로드는 실패합니다.
부분 페이지 업데이트에 FileUpload 컨트롤 사용
FileUpload 컨트롤은 포스트백 시나리오에서만 사용되며 부분 페이지 렌더링 중에 비동기 포스트백 시나리오에서는 사용되지 않습니다. UpdatePanel 컨트롤 내에 있는 FileUpload 컨트롤을 사용하는 경우 패널의 PostBackTrigger 개체인 컨트롤을 사용하여 파일을 업로드해야 합니다. UpdatePanel 컨트롤은 포스트백을 통해 전체 페이지를 업데이트하는 대신 페이지의 선택한 영역을 업데이트하는 데 사용됩니다. 자세한 내용은 UpdatePanel 컨트롤 개요 및 부분 페이지 렌더링 개요를 참조하십시오.
보안 및 FileUpload 컨트롤
사용자가 FileUpload 컨트롤을 사용하여 스크립트 파일 및 실행 파일을 포함하여 악의적일 수 있는 파일을 업로드할 수 있습니다. 사용자가 업로드할 수 있는 파일을 미리 제한할 수는 없습니다. 사용자가 업로드할 수 있는 파일의 형식을 제한하려면 파일이 업로드된 후에 파일 확장명 및 파일의 ContentType 속성 값과 같은 파일 특성을 검사해야 합니다.
참고: |
---|
페이지를 전송하기 전에는 클라이언트 스크립트를 사용하여 사용자가 텍스트 상자에 입력한 파일 이름을 검사할 수 있습니다. 그러나 클라이언트측에서 파일 이름을 검사하는 것이 유용할 수는 있지만 사용자가 실행 파일 같이 안전하지 않은 파일 형식을 업로드하지 못한다고 보장할 수는 없습니다. |
코드 예제
방법: FileUpload 웹 서버 컨트롤을 사용하여 파일 업로드
맨 위로 이동
클래스 참조
다음 표에서는 FileUpload 컨트롤과 관련된 클래스를 보여 줍니다.
멤버 |
설명 |
---|---|
FileUpload 컨트롤의 기본 클래스입니다. |
맨 위로 이동