2011-06-13 4 views
4

사용자가 비동기 적으로 파일을 업로드 할 수 있도록 AsyncFileUpload를 사용하고 있습니다.AsyncFileUpload 업로드 할 파일 크기를 제한하십시오.

파일의 크기를 1MB로 제한하고 싶습니다.

지금까지와 같은 내가에만 업로드 완료 업로드가 시작되면 같은

에 파일의 길이를 얻을 수있는 본 적이 무엇을 :

(OnClientUploadStarted)

function UploadStarted(sender,args) 
{ 
    //if bigger than 1MB (approximately) 
    if (args.get_length() > 1000000) 
    { 
     ShowActionNotificationError(errorMessage); 
     return false; 
    } 
} 

인수. get_length()가 null이므로 사용할 수 없습니다 ...

업로드가 완료되면 :

(OnClientUploadComplete)

function UploadComplete(sender,args) 
{ 
    //if bigger than 1MB (approximately) 
    if (args.get_length() > 1000000) 
    { 
     ShowActionNotificationError(errorMessage); 
     return false; 
    } 
} 

확인을 작동하지만, 파일이 이미 업로드는 ...

그래서 어떻게 업로드하기 전에 파일의 크기를 알 수 있습니까? 나는 아주 간단한 것을 놓치고 있습니까?

저는 HTTP 요청 길이와 정렬을 처리하지 않고 정말로하고 싶습니다.

감사합니다.

답변

5

FileUploadComplete 방법으로 크기를 확인할 수 있습니다.

야후 메일 및 Gmail과 같은 사이트를 살펴보면 플래시로 처리됩니다.

은 Hotlight에서 Silverlight로 처리되었습니다.

내가 지금 그것을 통합하는 작업입니다 Uploadify라는 무료 (지금은) 플래시 업로드 컨트롤 ...

있다.

내가 잘못하면 나를 바로 잡으십시오! :)

0

당신은 내가이가 AJAX를 사용하여 수행 할 수 없습니다 실현 몇 가지 실질적인 연구 한 후 서버 측

void FileUploadComplete(object objSender, AsyncFileUploadEventArgs e) 
{ 
    if (e.get_length() > 1000000) 
    { 
     ShowActionNotificationError(errorMessage); 
     return false; 
    } 
} 
+0

그렇지만 사용자가 업로드 할 100MB 파일을 선택하고 오랜 시간이 끝나기를 기다리는 경우에만 그 파일이 너무 큽니다. 전에 알고 싶어요 ... – Mithir

+0

업로드 할 파일을 선택하자마자이 이벤트 처리기가 작동합니다 ...이 핸들러에 들어가 자마자 크기를 확인할 수 있습니다 .... 한계가있는 경우 이동하십시오. 앞으로 및 업로드 다른 탈옥. – Misam

+0

최대한 빨리 처리되는 경우 ... 어떻게하면 프로세스를 중지하고 새로 고치지 않고 사용자에게 오류를 표시 할 수 있습니까? – Mithir

0

예 Mithir가 말한 것은 정확합니다. HTML 컨트롤을 사용하여 현대적인 사용자 환경을 제공하는 것은 정말 성가신 일입니다. 또 다른 대안은 SWFUpload

0

콘텐츠가 실제로 서버에 업로드되기 전에 파일 크기를 확인해야하는 경우 FilePlay를 사용하여 ASP 구성 요소를 사용하는 것이 좋습니다. 이를 통해 파일 업로드 여부를 확인하고 결정할 수 있습니다.

If FileUpload1.FileContent.Length <= DesiredFileSize Then 

    <<Code to Upload the file>> 

End If 
+0

OP는 파일 크기에 대한 클라이언트 측 검사를 찾고 있습니다. 이것은 서버 측 검사입니다. 어쨌든 파일을 업로드해야하는데, 이는 OP가 원하는 것이 아닙니다. – Scott

0

CERO 2월 5시 51분

FileUpload1 더 UpdatePanel에 대한 작동 14 '12 :

다음 ASP 컨트롤 UpdatePanel와 호환되지 않습니다

를 제어합니다.NET 컨트롤은 부분 페이지 업데이트와 호환되지 않으므로 UpdatePanel 컨트롤 내에서 작동하도록 설계되지 않았습니다.

여러 조건에서 트 리뷰 컨트롤. 하나는 비동기 포스트 백의 일부가 아닌 콜백이 활성화 된 입니다. 또 CSS 스타일에 대한 참조를 사용하여 암시 적으로 스타일을 지정하는 대신 컨트롤 속성으로 스타일을 직접 설정하는 경우도 있습니다. EnableClientScript 속성이 false 인 경우 (기본값은 true)입니다. 비동기 포스트 백간에 EnableClientScript 속성 의 값을 변경하는 경우도 있습니다.

CSS 스타일에 대한 참조를 사용하여 컨트롤을 암시 적으로 스타일링하는 대신 컨트롤 속성으로 스타일을 직접 설정하면 메뉴 컨트롤이 적용됩니다 ( ).

FileUpload 및 HtmlInputFile은 비동기 포스트 백의 일부로 파일 을 업로드하는 데 사용되는시기를 제어합니다.

EnableSortingAndPagingCallbacks 속성이 true로 설정된 경우 GridView 및 DetailsView가 제어합니다. 의 기본값은 false입니다.

내용이 편집 가능한 템플릿으로 변환되지 않은 로그인, PasswordRecovery, ChangePassword 및 CreateUserWizard 컨트롤 .

대체 컨트롤입니다.

UpdatePanel 컨트롤 내에서 FileUpload 또는 HtmlInputFile 컨트롤을 사용하려면 파일을 전송하는 포스트 백 컨트롤을 패널의 PostBackTrigger 컨트롤로 설정하십시오. FileUpload 및 HtmlInputFile 컨트롤은 다시 게시 시나리오에서만 사용할 수 있습니다.

4

클라이언트 측 업로드 시작 이벤트에서이 작업을 수행 할 수 있습니다.

if (sender._inputFile.files[0].size >= maxFileSize) { 
    sender._stopLoad(); 
} 

_stopLoad는 업로드 오류 이벤트를 호출합니다.

관련 문제