Korean_hamster
지현의 개발자 성장과정
Korean_hamster
전체 방문자
오늘
어제
  • 분류 전체보기 (122)
    • Front-End Developer (79)
      • Project (12)
      • HTML (8)
      • CSS (17)
      • Computer Science (9)
      • JavaScript (20)
      • React (13)
    • 이런저런 생각 (7)
    • 주간 성장회고 (24)
    • English (0)
    • 리뷰 (2)
    • Books (5)

블로그 메뉴

  • 방명록

공지사항

인기 글

태그

  • flex
  • 라우터
  • 리액트
  • CS
  • 반응형웹
  • 프론트앤드스쿨
  • 프론트앤드
  • 비전공자개발자
  • fetch
  • js
  • 면접관님
  • 멋사
  • sass
  • 깃헙
  • 멋쟁이사자처럼
  • 비전공개발자
  • AtomicHabits
  • CSS
  • 깃
  • HTML

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Korean_hamster

지현의 개발자 성장과정

Front-End Developer/Project

회원가입페이지 코드리뷰 받은내용 고쳐보기

2022. 7. 19. 15:58

어떤 파일만 받을 것인가 - 아니 이렇게 쉬운 방법이?

 if (Blob.type.substr(0, 5) !== 'image') {
      alert('image만 업로드가 가능합니다');
      return;
    } else if (Blob.type.substr(0, 5) === 'image') {
      const reader = new FileReader();
      reader.readAsDataURL(Blob);

나는 이런식으로 file type의 substring의 0번째 index부터 5개 length가 (그냥 '첫 다섯글자가' 라는 말을 이렇게 어렵게 한다..) 'image'일 때와 아닐때를 나누어 예외처리를 해주었는데, 그냥 input 의 accept속성을 넣어주면 간편하게 해결할 수 있다.

 

사실 명세서에 // 이미지 파일(*.jpg, *.gif, *.png, *.jpeg, *.bmp, *.tif, *.heic) 확장자명이 다를 때 이미지 파일만 업로드가 가능합니다. // 라는 요구명세가 있어서 이참에 이를 추가해주었다.

 

        <input
          type="file"
          accept=".jpg, .gif, .png, .jpeg, .bmp, .tif, .heic"
          ref={fileInput}
          style={{ display: 'none' }}
          onChange={imageFileHandler}
        />

 

+ 아래와 같이 지정하면 모든 이미지파일을 받는다.

accept = 'image/*'

 

 

Min-length냐, 커스텀 유효성 검사냐

일단 내가 특정 길이의 문자열만 받고싶을 때는 Min-length, Max-length라는 아주 간편한 속성을 사용할 수 있다. 다만 

1. 경고창 문구가 커스텀이 되지를 않고

2. Min-length같은 경우는 IE지원이 아예 안되며

3. input값 유효성검사 통과시 회원가입 버튼을 활성화해주는 State도 변경을 해주어야 하기 때문에

 

좀 더 유연한 설계를 위해 따로 유효성검사를 진행하였다.

 

+ pattern속성을 사용하면 IE10버전 지원이 되고 경고문구 수정이 가능하다고 한다.

https://stackoverflow.com/questions/10281962/is-there-a-minlength-validation-attribute-in-html5/10294291#10294291

 

Is there a minlength validation attribute in HTML5?

It seems the minlength attribute for an <input> field doesn't work. Is there any other attribute in HTML5 with the help of which I can set the minimal length of a value for fields?

stackoverflow.com

 

저작자표시 (새창열림)

'Front-End Developer > Project' 카테고리의 다른 글

[삽질기록]오픈API 사용해서 레시피 사이트 만들기  (0) 2022.07.06
깃헙 협업프로젝트시 Issue / PR 템플릿 생성하기 (+ 유투브)  (0) 2022.06.28
flex & grid 책을 출간하기까지(총괄은 쉽지 않다! 하지만 많이 배웠다.)  (0) 2022.06.06
Sass를 사용한 영화목록 페이지 클론코딩  (0) 2022.05.04
Pure CSS로 포토샵의 역사 페이지 구현하기  (2) 2022.04.27
    Korean_hamster
    Korean_hamster
    Keep pushing myself to the limits

    티스토리툴바