문제상황
리뷰 등록하는 페이지에서 이미지 파일은 최대 3개까지 첨부가 가능하다.
따라서 3개 이상 첨부 시, 앞에 3개만 보여줘야 한다.
input file의 change 이벤트 안에 files를 찍으니 fileList라는 Object로 들어와서 강제로 수정하려고 하니 수정 불가
예)
첨부: 사진1, 사진2, 사진3, 사진4, 사진5
결과: 사진1, 사진2, 사진3
해결방법
DataTransfer() 로 다시 배열을 재구성하여 this.files에 담아주었다.
const maxLength = 3; if (this.files.length > maxLength) { const transfer = new DataTransfer(); Array.from(this.files) //새로 배열 만들 그릇 .slice(0, maxLength) //첫번째 인덱스부터 최대개수까지 자르기 .forEach(file => { transfer.items.add(file) //여기서 file 반복 돌려서 추가 }) this.files = transfer.files; //this.files 안에 다시 넣어주기 }
반응형
'Issues > Javascript&jQuery' 카테고리의 다른 글
[javascript & Mobile] 주소창 포함한 100vh 구하기 (jquery / javascript height 총 정리) (0) | 2021.12.07 |
---|---|
[javascript & 정규식] 특정문자열 제외하고 다 치환하기 (0) | 2021.12.07 |
[javascript & Swiper] 슬라이드 가운데 오기 & loop 아닐때 (0) | 2021.12.07 |
[javascript & css] daum zipcode 우편번호 css 컨트롤하기 (iframe 안 css 수정하기) (0) | 2021.12.07 |
[javascript & HTML5] video tag autoplay + muted 음소거 해제하기 (html video태그) (0) | 2021.12.03 |