[Vue] 파일업로드 사이즈 / 용량 체크
2023. 6. 14. 10:47ㆍVue
728x90
1. 사이즈 용량 체크
isValid() {
// HTML에서 파일 업로드 input을 가져옵니다.
const fileInput = this.$refs.fileInput
// 파일 객체를 가져옵니다.
const file = fileInput.files[0]
// 파일의 크기를 체크합니다.
if (file.size > 500 * 1024) {
// 파일 크기가 500KB를 넘는 경우 처리합니다.
alert('이미지 파일의 크기는 최대 500KB 이하이어야 합니다.');
fileInput.value = '';
}
}
2. 유효한 사이즈의 파일만 업로드시키기
multiCapture() {
// HTML에서 파일 업로드 input을 가져옵니다.
const fileInput = this.$refs.fileInput
// 파일을 읽기 위한 FileReader 객체를 생성합니다.
var reader = new FileReader();
// 파일 로드가 완료되면 실행될 콜백 함수를 정의합니다.
reader.onload = function(event) {
// 이미지 객체를 생성합니다.
const image = new Image();
// 이미지 객체의 로드가 완료되면 실행될 콜백 함수를 정의합니다.
image.onload = function() {
// 이미지 객체의 너비와 높이를 가져옵니다.
const width = this.width;
const height = this.height;
// 이미지의 크기를 체크합니다.
if (width > 1024 || height > 1024) {
// 이미지가 1024px 보다 크면 에러 처리합니다.
alert('이미지의 크기는 최대 1024px x 1024px 이하이어야 합니다.');
fileInput.value = '';
}
};
// 이미지 객체에 파일 데이터를 설정하고 로드합니다.
image.src = event.target.result;
};
// FileReader 객체에 파일 데이터를 설정하고 로드합니다.
reader.readAsDataURL(fileInput.files[0]);
},
사이즈가 유효하지 않을 때, 빈 이미지가 업로드되어서 액박이 뜨는 문제가 발생하였는데
file의 value 를 초기화 시켜줌으로 인해, 이미지가 업로드 되지 않게 해준다.
'Vue' 카테고리의 다른 글
[Vue] eventBus 사용시 중복호출방지 (0) | 2023.10.16 |
---|---|
[Vue] 문자열 길이 픽셀로 가져오기 (0) | 2023.06.21 |
[Vue] binary 로 변환하는 작업 (0) | 2023.06.13 |
[Vue] router guard (0) | 2023.02.24 |
[Vue] vuex-persistedstate (0) | 2023.02.20 |