Vue에서 Azure blob storage에 파일 업로드 하기 Express 사용
2020. 10. 29. 17:03ㆍAzure
ejs처럼 프론트엔드와 백엔드가 같은 서버를 쓰면 전달이 잘되지만, 프론트 서버가 있어 통신을 할때 방법은 따로 있다.
vuetifyjs를 사용해서 프론트를 만들었다. 구동방식은 비슷하다.
<template>
<v-container>
<form @submit.prevent="dataUpload">
<v-text-field
v-model="name"
label="파일이름"
/>
<v-file-input
v-model="blobData"
show-size
label="파일"
/>
<v-btn
class="mr-4"
@click="dataUpload"
>
업로드
</v-btn>
</form>
</v-container>
</div>
</template>
<script>
export default {
data: () => ({
name:'',
blobData: null
}),
methods: {
async dataUpload () {
const fd = new FormData()
fd.append('name', this.name)
fd.append('blobData', this.blobData, { type: '*/*' })
axios
.post("/api주소", fd, {
headers: { "Content-Type": "multipart/form-data" },
})
.then((res) => {
console.log(res.statusText);
})
.catch((err) => {
console.log(err);
throw err;
});
}
}
}
</script>
먼저
new FormData()를 사용해서 form 형식에 데이터와 파일을 넣어주면 된다.
하지만 주의 할 점이있다.
const fd = new FormData()
fd.append('name', this.name)
fd.append('blobData', this.blobData, { type: '*/*' })
이 부분에서 fd.append('name', this.name)같은 text값은 무조건 file 전에 있어야 한다.
fd.append('blobData', this.blobData, { type: '*/*' }) 같은 파일부분이 text값보다 먼저 있다면 file만 전송이 되고 text 값은 전송이 되지 않으니 주의 하자.
이렇게 프론트에서 백으로 값을 전달하면된다.
백코드는 crispypotato.tistory.com/60 에 있는 백코드 처럼 써주면된다. 서로 연결을하려면 api 주소만 맞추어 주면된다.
fd.append('name', this.name)
fd.append('blobData', this.blobData, { type: '*/*' }) 양식 순서 때매 시간 소비를 많이 했다 다른 사람들은 이런 실수로 시간을 소비하지 않았으면 한다.
728x90
반응형
'Azure' 카테고리의 다른 글
우당탕 Azure Pipeline CI CD 설정 하기 (3) (0) | 2020.11.17 |
---|---|
우당탕 Azure Pipeline CI CD 설정 하기 (2) (0) | 2020.11.17 |
우당탕 Azure Pipeline CI CD 설정 하기 (1) (0) | 2020.11.17 |
Azure Blob Storage에 파일 업로드 하기 Node(Express) 사용 (0) | 2020.10.29 |
Azure CosmosDB연결시 Collection 명칭 (0) | 2020.08.04 |