사용 화면
<v-file-input
v-model="file"
@change="previewFile(file)"
/>
<v-img :src="preview" />
methods: {
previewFile(file) { //이미지 미리보기
const fileData = (data) => {
this.preview = data
}
const reader = new FileReader()
reader.readAsDataURL(file)
reader.addEventListener("load", () => {
fileData(reader.result)
}, false)
},
async uploadImage() { //이미지 업로드
const formData = new FormData()
formData.append('image', this.file)
const response = await this.$axios.post('api url', formData,{
headers: { 'Content-Type': 'multipart/form-data' }
})
}
}
FileReader.readAsDataURL()
컨텐츠를 특정 Blob이나 Filed에서 읽어 오는 역할을 한다.
읽어오는 read 행위가 종료되는 경우, readStater가 done이 되며, loadend 이벤트가 트리거 되며 인코딩 된 스트링 데이터가 result 속성에 담긴다.
FormData()
form data를 key, value로 저장할 수 있는 데이터 구조
FormData.append()
객체 내부의 기존 키에 새 값을 추가하거나, 키를 추가