2009-08-09 5 views
5

클라이언트 측 유효성 검사는 유용성을 높이는 데 중요합니다.서버에 업로드하기 전에 클라이언트 측에서 파일 크기를 교차 브라우저로 확인 하시겠습니까?

서버에 업로드하기 전에 파일 크기의 유효성을 검사하는 크로스 브라우저 방식이 있습니까? asp.net 파일 업로드 컨트롤을 사용하고 있습니다.

http://ajaxuploader.com/Demo/simple-upload.aspx

http://demo.essentialobjects.com/Default.aspx?path=AJAXU

하지만 방법 :

나는 일부 타사 컨트롤이 확인을 발견?

+1

당신이 발견 한 모든 컨트롤은 플래시를 사용합니다 :) js를보십시오. 그들은 swf 파일을 내장합니다. – redsquare

답변

4

이전에는 파일이 서버로 전송되기 전에 파일 크기를 확인하는 유일한 방법은 '자바 스크립트보다 두꺼운'클라이언트 측 플러그인/추가 기능을 사용하는 것이 었습니다. 이것들은 클라이언트 시스템에 설치되어야합니다. 예 : SWFUpload, Java 애플릿, ActiveX 컨트롤을 사용합니다.

이제, 당신은 HTML5 파일 API를 사용할 수 있습니다, 즉 :

var size = document.getElementById('myfile').files[0].size; 
+0

는 내 답안 사본처럼 보입니다! – redsquare

+0

@redsquare, "swfupload"를 예제 중 하나로 추가했습니다. +1. :-) –

+0

@ o.k.w 샘플 코드를 게시 할 수 있습니까? –

4

이 HTML5의 파일 API와 지금 가능하다 : 이것은 most of the latest browsers에서 지원

<script> 
    var myFile = document.getElementById('myFile'); 
    var size; 
    myFile.addEventListener('change', function() { 
     size = this.files[0].size; 
    }); 
</script> 

.

Internet Explorer는 ActiveX가 포함 된 this workaround을 지원하지만 Internet Explorer의 보안 설정을 낮춰야하므로 대부분의 응용 프로그램에서 실제로 옵션이 아닙니다.

실제로 IE9 이하에서 수행해야하는 경우 더 많은 작업이 필요하지만 SWFUpload과 같은 플래시 기반 업 로더를 사용하십시오. IE10은 (잘하면) HTML5 File API에 대한 지원을 추가 할 것입니다.

+0

IE 해결 방법은 다음과 같이 요약 할 수 있습니다. "모든 보안 기능을 끄고 즉시 PC를 소유하십시오." IE10은 HTML5 파일 API를 제공합니다. – EricLaw

관련 문제