보통 파일 업로드를 할 때 폼데이터(FormData)를 사용하여 파일을 전송하지만, 이번에는 서버 측에서 Base64 문자열로 파일을 전송해 달라는 요청을 받았다.
FileReader를 사용하여 파일 읽기
readAsDataURL 매서드를 사용하여 base64 문자열로 변환했다.
// 파일 -> base64 로 변환하는 함수
async getFileBase64(file) {
return new Promise((resolve, reject) => {
const reader = new FileReader();
// 파일을 Base64 데이터 URL로 읽음
reader.readAsDataURL(file);
// 파일을 읽는데 성공했을 때 호출되는 콜백
reader.onload = () => {
const base64String = reader.result.split(',')[1]; // Base64 부분만 추출
resolve(base64String);
};
// 파일을 읽는데 실패했을 때 호출되는 콜백
reader.onerror = error => {
reject(error);
};
});
}
// 사용 - 여러개일 경우 for문으로 돌려서
await this.getFileBase64(files[0]);
참고
https://inpa.tistory.com/entry/JS-📚-Base64-Blob-ArrayBuffer-File-다루기-정말-이해하기-쉽게-설명
'개발 > JS|TS' 카테고리의 다른 글
FormData와 JSON을 함께 보내는 방법 (0) | 2024.11.11 |
---|---|
[JS+VUE] 자바스크립트로 툴팁 위치 제어하기 ( 스크롤 영역 툴팁 ) (0) | 2024.03.13 |
특정 일의 월요일, 일요일 찾기 (feat.Chat GPT) (0) | 2023.08.02 |
parseInt 백단위 쉼표 (0) | 2018.09.13 |