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

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

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

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
yeahzy
주말에 쓰는 개발일기/javascript

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

주말에 쓰는 개발일기/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
    주말에 몰아 쓰려고 만들었는데 생각보다 주말은 빠르다..

    티스토리툴바

    개인정보

    • 티스토리 홈
    • 포럼
    • 로그인

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.