csdn에 대용량 파일을 업로드하는 방법에 대한 모든 게시물을 살펴본 후 이런 쓰레기 같은 글을 썼습니다. (:-))
대용량 파일을 업로드하는 방법에는 여러 가지가 있습니다.
1. Sigui의 HttpWorkerRequest 메소드는 이해하기 너무 어렵습니다:-(
2. 타사 컨트롤 AspNetUpload를 사용하여 돈을 요청하세요! ! 잊어 버리세요. 우리는 여전히 무료를 좋아합니다.
3. web.config 파일을 수정했지만 오류를 잡을 수 없습니다.
4. FTP를 통해 업로드하세요. 서버는 FTP 서비스를 제공해야 합니다.
우리는 세 번째 길을 선택할 수밖에 없습니다. 누가 우리를 이토록 바보로 만드는가! (너무 바보같아. 상관없어. 생선을 많이 먹어야지. 생선을 먹으면 똑똑해진다고 들었어.)
그럼 세 번째 방법도 잘 공부해봐!
Webcong 파일 수정:
<시스템.웹>
<httpRuntime maxRequestLength="40690"
useFullyQualifiedRedirectUrl="true"
실행시간초과="6000"
useFullyQualifiedRedirectUrl="false"
minFreeThreads="8"
minLocalRequestFreeThreads="4"
appRequestQueueLimit="100"
활성화VersionHeader="true"
/>
</system.web>
그 중 업로드와 밀접한 관련이 있는 것은 다음과 같습니다.
최대요청길이
ASP.NET에서 지원하는 최대 파일 업로드 크기를 나타냅니다.
이 제한은 사용자가 서버에 많은 수의 파일을 전달함으로써 발생하는 서비스 거부 공격을 방지하는 데 사용될 수 있습니다.
지정된 크기는 KB 단위입니다.
기본값은 4096KB(4MB)입니다.
실행 시간 초과
ASP.NET에서 자동으로 닫기 전에 요청 실행이 허용되는 최대 시간(초)을 나타냅니다.
단위는 초입니다. 대용량 파일을 업로드할 경우에는 더 큰 값으로 설정하세요.
서버 메모리가 512M이면 160M의 파일을 업로드할 수 있습니다. (해본 적은 없습니다. csdn에 올라온 많은 글들의 만장일치 의견입니다.)
'www.downcodes.com
이제 web.config 설정이 끝났습니다.
단, 업로드된 파일의 크기가 설정된 파일 크기 범위를 초과하면 다음과 같은 오류가 발생합니다.
페이지를 표시할 수 없습니다. 보려는 페이지는 현재 사용할 수 없습니다. 웹사이트에 기술적인 문제가 있거나 브라우저 설정을 조정해야 할 수도 있습니다.
해결할 수는 없지만 여전히 이 오류를 잡아야 합니다! 무엇을 해야 할까요?
최근 생선을 몇 마리 먹고 생각해 보니 이 오류는 파일 제어로 인한 포그라운드 오류이므로 try...catch를 사용하여 백그라운드에서 잡는 것은 불가능합니다.
그래서 이를 처리하기 위해 .NET의 오류 캡처 페이지 메커니즘을 사용하는 방법을 생각했습니다. 그것은 가능합니다.
1. 먼저 web.config를 설정하세요
<customErrors 모드="켜기"/>
2. 오류 포착을 위해 특별히 새로운 error.aspx 파일을 만듭니다.
3. 파일이 업로드된 aspx 페이지의 첫 페이지에 페이지 지시문을 추가합니다. ErrorPage="업로드Error.aspx"
4. error.aspx에 일부 코드를 추가하여 오류 메시지가 파일로 인한 전경 오류인지 확인합니다.
공개 클래스 UploadError: System.Web.UI.Page
{
개인 무효 Page_Load(개체 전송자, System.EventArgs e)
{
예외 ex = Server.GetLastError();
if (예 != null)
{
Response.Redirect("../error.aspx");
}
else //전경 오류 ex는 null 값입니다.
{
Response.Redirect("uploadexcel.aspx?err=1"); //업로드 페이지로 다시 이동하고 err 매개변수를 추가하여 오류 메시지를 표시합니다.
}
}
5. 오류 메시지를 표시합니다.
공개 클래스 uploadexcel : System.Web.UI.Page
{
개인 무효 Page_Load(개체 전송자, System.EventArgs e)
{
if (요청["err"] == "1")
{
Page.RegisterStartupScript("예산","<script 언어 = javascript>alert('파일 업로드에 실패했습니다! 파일 크기가 너무 큽니다!')</script>");
}
}
}
6. 일을 끝내고 하루를 마감하세요. (이 물고기는 무료가 아닙니다.)
위 수정 후 이제 업로드는 프로그램에서 지정하는 파일 크기가 되며 이를 초과하면 오류 메시지가 나타납니다.
이렇게 하면 적어도 나는 그것을 받아들일 수 있고 사용자에게 설명하기가 그리 어렵지 않을 것입니다.