//이미지 용량체크
    var isFileChecked = false;
    var isImgFile = false;
    var isEnableFileSize = false;
    var maxSize = 1*1024*1024;       //1M
    function checkFileSize(uploadImgObj){
        //
        var enableUploadFileExt=new Array("bmp","jpg","jpeg","gif");
        var uploadImgObjName = uploadImgObj.value;
        var startPoint = 0;
        var isImageFile = false;

        //File 체크확인
        isFileChecked = true;

        if(uploadImgObj.value == ""){
            return;
        }

        //이미지파일 확장자 체크
        for(var i=uploadImgObjName.length-1; i>=0; i--) {
            if(uploadImgObjName.charAt(i) == ".") {
                startPoint = i;
                break;
            }
        }
        var uploadImgObjExt = uploadImgObjName.substring(startPoint+1,uploadImgObjName.length);

        for(i=0; i<enableUploadFileExt.length; i++) {
            if(uploadImgObjExt.toLowerCase() == enableUploadFileExt[i]){
                isImageFile = true;
                break;
            }
        }
        if(!isImageFile){
            alert("이미지 파일이 아닙니다.     ");
            uploadImgObj.value="";
            isImgFile = false;
            return;
        }else{
            isImgFile = true;
        }

        //파일용량 체크
        var img = new Image();
        img.dynsrc = uploadImgObj.value;
        var filesize = img.fileSize;
        //alert(filesize);
        if(filesize > maxSize) {
            alert("파일업로드 허용용량 "+maxSize/1024+"Kbyte를 초과되었습니다.     ");
            isEnableFileSize = false;
        }else{
            isEnableFileSize = true;
        }
        //
    }

    //업로드승인체크
    function goFileUploadCheck(){
        if(!isFileChecked){
            alert("업로드할 파일을 지정해주셔야 합니다.     ");
            return;
        }

        if(!isImgFile){
            alert("이미지 파일이 아닙니다.     ");
            return;
        }

        if(!isEnableFileSize){
            alert("파일업로드 허용용량 "+maxSize/1024+"Kbyte를 초과되었습니다.     ");
            return;
        }
    }

<input id="txtUploadFile" style="width: 100%" type="file" size="40" name="NewFile"  onchange="javascript:checkFileSize(this);" />
 <input type="button" value="Upload" onclick="javascript:goFileUploadCheck();" />

추신 : 반드시 이것으로 만족하여 프로그래밍 하지 말고 반드시 서버단에서도 validation을 해주어야 한다!!!

그래도 발생하는 에러의 90%는  UI단에서 막을수 있다.

+ Recent posts