[vue,javascript]input image file 올릴 시 preview 띄우기
2023. 8. 8. 14:14ㆍFrontEnd/JavaScript
게시판에 글 등록시 image 파일을 올리면 preview가 즉시 띄워지도록 구현해야함
data() {
return {
notice: {}
}
},
methods: {
readImg(file) {
const files = $(`#${file}`)[0].files[0];
const reader = new FileReader();
reader.readAsDataURL(files);
reader.onload = (event) => {
if (file == 'banner_img') {
this.notice.Banner = event.target.result;
} else if (file == 'thumbnail_img') {
this.notice.ThumbnailPath = event.target.result;
} else {
this.notice.ImagePath = event.target.result;
}
}
}
}
나는 image를 추가하는 input이 총 3개라 readImg 함수에 file을 인수로 넣어주고 file별로 target을 다르게 설정해줌
<div class="">
<input type="file" id="banner_img" class="" accept="image/png, image/jpeg, .jpe" @change="readImg('banner_img')" />
<div class="">
<div class="" v-if="notice.Banner != null">
<img id="" v-bind:src="notice.Banner">
</div>
</div>
</div>
적용 할 때는 input change이벤트로 readImg('fileid값')을 넣어주고 img는 notice의 Banner값이 null이 아닐때 Banner의 value를 bind 해준다
'FrontEnd > JavaScript' 카테고리의 다른 글
Failed to execute 'readAsDataURL' on 'FileReader': parameter 1 is not of type 'Blob’ (0) | 2023.08.08 |
---|---|
[vue, javascript] 숫자(금액)에 comma 추가하기 (0) | 2023.08.08 |
[vue, javascript] array 속 item들의 총 합계 구하기 (0) | 2023.08.08 |
ResizeObserver로 resize 변화 감지하기 (0) | 2023.08.08 |
[javascript] 쿠키에서 값 가져오기 (0) | 2023.07.07 |