3

무시하는 것은 on this blog최대 업로드 파일 크기가 나는 기술을 사용하여 내 서버에 문서를 업로드하려고 해요

모든 잘 갔다 설명, 나는 잘 문서를 업로드 할 수 있어요. 내가 그렇게으로 내 Web.config의에 정의 된 업로드 제한을 초과하는 파일을 업로드 할 때 유일한하다가는

<location path="Documents/Documents/Add"> 
    <system.web> 
     <httpRuntime maxRequestLength="25600"/> 
    </system.web> 
</location> 

문제는 내가 서버의 응답을받지하고 있다는 것입니다 ....입니다 . 사실, Visual Studio에서 디버깅 할 때 액션이 히트되지 않습니다! 피들러의

추가 조사가 나는 ...

504: ReadResponse() failed: The server did not return a response for this request. 

받고 있어요 ....하지만 피들러가 실행 중일 때 난 단지 크롬이 무엇입니까 보여줍니다. 피들러가 크롬을 실행하지 않는 경우 상태 코드없이 '실패'로 표시되고 $(). ajax 양식 호출의 오류()는 발생하지 않습니다.

this SO post도 정확히 동일한 문제가 있습니다. 그러나 파일 크기가 초과되면 사용자에게 피드백을 줄 수있는 방법을 알고 싶습니다. 현재 "loading.gif"는 오류 응답이 발생하지 않고 방금 회전 중입니다.

답변

3

너무 큰 파일을 업로드하기 전에 파일 크기를 확인하기 위해 클라이언트 측 검사에 대해이 질문을 확인하십시오. Find size of file behind download link with jQuery

당신이 그것을 서버 측을 처리 할 경우 몇 일을 할 수 있도록 파일 크기가 web.config 파일에 설정보다 큰 경우 서버는 예외가 발생합니다

편집 할 수 있습니다.

1) 최대 파일 크기를 늘릴 수 있으며 업로드 코드가 작은 크기의 유효성을 검사하고 너무 큰 경우 오류를 반환 할 수 있습니다. 물론 당신이 새로운 크기보다 더 큰 것을 시도한다면 그것은 여전히 ​​실패 할 것입니다.

2) global.asax 파일에서 오류를 찾아서 처리하십시오. 응답 헤더를 설정하거나 false를 반환합니다. 이 옵션을 시작하려면 Catching "Maximum request length exceeded"을 확인하십시오.

3) 이전에 올려 놓은 JQuery 옵션으로 클라이언트 쪽을 처리하거나 Flash를 사용하여 크기를 확인하십시오.

기본적으로 서버가 파일이 너무 큼을 알려주기를 기다리는 것은 보통 너무 늦습니다. 파일이 너무 길어서 알려줄 수 있기 전에 거기까지 가야합니다. 이로 인해 서버에서 큰 피해가 발생합니다. 가능한 경우 클라이언트에서 확인하는 방법을 찾는 것이 좋습니다.

+1

답변 주셔서 감사합니다.하지만 도움이 될지 모르겠지만 서버에 이미있는 파일에 대해 contentLength가 표시되는 것으로 보입니다. 내 상황은 을 사용하는 파일 업로드를위한 것입니다. 귀하의 답변을 오해 한 경우 알려주십시오. – ETFairfax

+0

이 작업을 수행하는 데는 몇 가지 방법이 있지만 서버 측에서는 쉬운 솔루션을 계획하고 있다면이를 좋아하지 않을 것입니다. 첫 번째로 web.config를 사용하여 최대 파일 크기를 관리하는 경우 업로드 페이지가 해당 금액을 초과하면 절대 적중되지 않습니다. 나는 해결책을 게시하기 위해 나의 대답을 수정할 것이다. – benjamin