반응형
이 문서에서는 Visual C# .NET을 사용하여 웹 서버에 파일을 업로드하는 방법을 단계별로 설명합니다. 이 문서에서는 ASP.NET 파일(WebForm1.aspx) 및 해당 관련 코드 숨김 파일(WebForm1.aspx.cs)을 만들어서 Data라는 이름의 디렉터리에 파일을 업로드합니다.
ASP.NET 응용 프로그램 만들기
Microsoft Visual Studio .NET에서 새 응용 프로그램을 만들어서 웹 서버에 파일을 업로드하려면 다음과 같이 하십시오.
- Microsoft Visual Studio .NET을 시작합니다.
- 파일 메뉴에서 새로 만들기를 가리킨 다음 프로젝트를 누릅니다.
- 새 프로젝트 대화 상자의 프로젝트 형식에서 Visual C# 프로젝트를 누른 다음 템플릿에서 ASP.NET 웹 응용 프로그램을 누릅니다.
- 위치 상자에 URL을 입력하여 프로젝트를 만듭니다. 이 예에서 http://localhost/CSharpUpload 를 입력하면 CSharpUpload라는 기본 프로젝트 이름이 만들어집니다. WebForm1.aspx 파일이 Visual Studio .NET의 디자이너 보기에 로드됩니다.
Data 디렉터리 만들기
응용 프로그램을 만든 후에는 업로드한 파일을 저장할 Data 디렉터리를 만듭니다.
또한 이 디렉터리를 만든 후에 ASPNET 작업자 계정에 대해 쓰기 권한을 설정해야 합니다.
- Visual Studio .NET의 솔루션 탐색기 창에서 CSharpUpload를 마우스 오른쪽 단추로 누르고 추가를 누른 다음 새 폴더를 누릅니다. 기본적으로 NewFolder1이라는 이름의 폴더가 새로 만들어집니다.
- 폴더 이름을 Data로 바꾸려면 NewFolder1을 마우스 오른쪽 단추로 누르고 이름 바꾸기를 누른 다음 Data를 입력합니다.
- Windows 탐색기를 시작한 다음 2단계에서 만든 Data 파일 시스템 폴더를 찾습니다. 기본적으로 이 폴더는 아래 폴더에 있습니다.
C:\Inetpub\wwwroot\CSharpUpload\Data - 보안 설정을 변경하여 Data 디렉터리에 대한 쓰기 권한을 부여하려면 Data를 마우스 오른쪽 단추로 누른 다음 등록 정보를 누릅니다.
- Data 등록 정보 대화상자에서 보안 탭을 누른 다음 추가를 누릅니다.
- 사용자 또는 그룹을(를) 선택하십시오. 대화 상자에서 ASPNET계정을 누른 다음 추가를 누릅니다. 확인을 눌러 사용자 또는 그룹을(를) 선택하십시오. 대화 상자를 닫습니다.
- aspnet_wp account (computername\ASPNET) 계정을 누른 후 다음 사용권한에 대해 허용 확인란을 선택합니다.
- 읽기 및 실행
- 폴더 내용 보기
- 읽기
- 쓰기
그 밖의 다른 허용 확인란과 거부 확인란은 모두 선택 취소합니다. - 확인을 눌러 Data 등록 정보 대화 상자를 닫습니다. Data 디렉터리 사용 권한이 성공적으로 수정되어 사용자가 업로드한 파일이 저장됩니다.
WebForm1.aspx 페이지 수정
사용자가 파일을 업로드할 수 있도록 WebForm1.aspx 파일의 HTML 코드를 수정하려면 다음과 같이 하십시오.
- 앞에서 연 Visual Studio .NET의 인스턴스로 돌아옵니다. WebForm1.aspx가 디자이너 창에서 열립니다.
- WebForm1.aspx 페이지의 HTML 소스를 보려면 디자이너 창에서 WebForm1.aspx를 마우스 오른쪽 단추로 누른 다음 HTML 소스 보기를 누릅니다.
- <form> 태그가 포함되어 있는 다음 HTML 코드를 찾습니다.
<form id="Form1" method="post" runat="server">
- 다음과 같이 <form> 태그에 enctype="multipart/form-data" 이름-값 특성을
추가합니다.
<form id="Form1" method="post"
enctype="multipart/form-data" runat="server">
- 여는 <form> 태그 뒤에 다음 코드를 추가합니다.
<INPUT type=file id=File1 name=File1 runat="server" /><br>
<input type="submit" id="Submit1" value="Upload" runat="server" /> - HTML <form> 태그가 다음과 같은지 확인합니다.
<form id="Form1" method="post"
enctype="multipart/form-data" runat="server">
<INPUT type=file id=File1 name=File1 runat="server" /><br>
<input type="submit" id="Submit1" value="Upload" runat="server" /></form>
WebForm1.aspx.cs 코드 숨김 파일에 업로드 코드 추가
업로드한 데이터를 받아들이도록 WebForm1.aspx.cs 숨김 코드 파일을 수정하려면 다음과 같이 하십시오.
- Submit1 서브루틴이 다음과 같이 나타나는지 확인합니다.
private void Submit1_ServerClick(object sender, System.EventArgs e)
{
if( ( File1.PostedFile != null )
&& ( File1.PostedFile.ContentLength > 0 ) )
{
string fn = System.IO.Path.GetFileName(File1.PostedFile.FileName);
string SaveLocation = Server.MapPath("Data") + "\\" + fn;
try
{
File1.PostedFile.SaveAs(SaveLocation);
Response.Write("The file has been uploaded.");
}
catch ( Exception ex )
{
Response.Write("Error: " + ex.Message);
}
}
else
{
Response.Write("Please select a file to upload.");
}
}
대용량 파일 업로드하기
ASP.NET Framework에서 HTTP Post 방식으로 파일을 업로드 할 수 있는 최대 크기는
기본적으로 4 MB입니다. 이는 악의적인 대용량 업로드로 인한 서버의 피해를 줄이고자 함입니다. 그 이상 크기의 파일을 업로드 하기 위해서는 machine.config (혹은, web.config) 파일에서 속성 값을 변경해주면 됩니다.
<configuration>
<system.web>
<httpRuntime
executionTimeout="90"
maxRequestLength="4096"
useFullyQualifiedRedirectUrl="false"
minFreeThreads="8"
minLocalRequestFreeThreads="4"
appRequestQueueLimit="100"/>
</system.web>
</configuration>
여기서 maxRequestLength가 바로 업로드 할 수 있는 파일의 크기를 말합니다.
maxRequestLength의 설정 값을 원하는 값으로 설정하면 됩니다.
Machine.config 파일은 C:\WINNT\Microsoft.NET\Framework\v1.0.3705\CONFIG
디렉터리에 있습니다.
728x90
반응형
LIST
'마루아라는 개발쟁이 > ASP.NET' 카테고리의 다른 글
GridView의 field를 hidden field로 (0) | 2022.12.06 |
---|---|
GridView 의 고정된 Header 구현하기 (0) | 2022.12.06 |