yeahzy
주말에 몰아쓰는 개발일기
yeahzy
전체 방문자
오늘
어제
  • 분류 전체보기 (22)
    • 주말에 쓰는 개발일기 (20)
      • javascript (10)
      • java (1)
      • react-native (5)
      • react (2)
    • 모든 일은 평일에 이루어지지 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • window.opener
  • 크롬 opener
  • showModalDialog.js
  • 프론트엔드로드맵
  • popup에서 부모창 함수 호출
  • opener 안될 때
  • javascript opener오류
  • 개발자역량강화로드맵
  • popup opener
  • 크롬개발자도구오류
  • event.preventDefault()
  • Ajax
  • Java
  • 파일업로드
  • next.js기초
  • javascript
  • 신입개발자로드맵
  • fileupload
  • showModalDialog
  • event.stopPropagation()

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
yeahzy

주말에 몰아쓰는 개발일기

주말에 쓰는 개발일기/javascript

[ajax, javascript] file upload 유효성검사

2021. 1. 8. 14:28

파일 업로드에 필요한 유효성검사.

은근히 빼먹기 쉬울 것 같아서 정리한다.

 

1. 파일 갯수

2. 확장자

3. 파일 사이즈 (모든 파일의 사이즈를 더함)

 

* 이미 업로드 된 파일의 정보를 가지고 오는 함수에서 attach_count , attach_total_size 를 이미 가져와서 전역변수에 정의해둔 상태이다.

 

 

	//업로드된 파일 추출
        var files = $J('#inputFile_' + param.attach_key)[0].files;
                
        // 파일갯수 유효성검사
        if (attach_count+files.length > param.limit_count) { 
                $J('#inputFile_' + param.attach_key)[0].value = '';
                alert(param.limit_count + '개 이하의 파일만 업로드할 수 있습니다.');
                return;
        }
        
        var files_size = 0
        for (var i = 0;i<files.length;i++){
                files_size += files[i].size;     
                var ext = files[i].name.split('.').pop().toLowerCase();
                var dot_ext = '.'+ext
                
                // 확장자 유효성검사
                console.log(array_allowFileType);
                if(param.allow_filetype!="*" && $J.inArray(dot_ext, array_allowFileType) == -1){
              alert(ext+'는 등록 할수 없는 파일명입니다.');
              return;
                }
                if($J.inArray(dot_ext, array_denyFileType) != -1 ){
                        console.log(array_denyFileType);
              alert(ext+'는 등록 할수 없는 파일명입니다.');
              return;
                }
        }
        
        // 파일사이즈 유효성검사
        if(attach_total_size + files_size > param.limit_size){
                alert("업로드 파일 크기는 "+(param.limit_size/1048576)+"MB이하로 제한됩니다.")
                $J('#inputFile_' + param.attach_key)[0].value = '';
                return;
        }

'주말에 쓰는 개발일기 > javascript' 카테고리의 다른 글

chrome 80 samesite 정책 (크롬 / 엣지 결제모듈 인증모듈 사용 후 세션 유실)  (1) 2021.01.08
ArrayList 함수 clear() UnsupportedOperationException 에러.  (0) 2021.01.08
ajax 에러 확인 / err:SyntaxError: Unexpected token < in JSON at position 0  (0) 2021.01.08
feature.fileapi : TypeError: undefined is not a function 에러  (0) 2021.01.08
struts2, ajax, json, IE - FileUploader  (0) 2020.12.25
    '주말에 쓰는 개발일기/javascript' 카테고리의 다른 글
    • chrome 80 samesite 정책 (크롬 / 엣지 결제모듈 인증모듈 사용 후 세션 유실)
    • ArrayList 함수 clear() UnsupportedOperationException 에러.
    • ajax 에러 확인 / err:SyntaxError: Unexpected token < in JSON at position 0
    • feature.fileapi : TypeError: undefined is not a function 에러
    yeahzy
    yeahzy
    주말에 몰아 쓰려고 만들었는데 생각보다 주말은 빠르다..

    티스토리툴바