How To Upload Files With Vue
Mar 19, 2021
Using Vue 2 with Axios, you can upload files easily with a few clicks.
Using the <input>
tag and specifying the type to file, the browser will
allow you to select the file to upload from your computer.
Axios can POST FormData
instances, which makes it easy to upload files.
Once the user has selected a file, you can upload the JavaScript blob by
adding it to a FormData
instance. Below is an example.
const app = new Vue({
data: () => ({images: null}),
template: `
<div>
<input type="file" @change="uploadFile" ref="file">
<button @click="submitFile">Upload!</button>
</div>
`,
methods: {
uploadFile() {
this.Images = this.$refs.file.files[0];
},
submitFile() {
const formData = new FormData();
formData.append('file', this.Images);
const headers = { 'Content-Type': 'multipart/form-data' };
axios.post('https://httpbin.org/post', formData, { headers }).then((res) => {
res.data.files; // binary representation of the file
res.status; // HTTP status
});
}
}
});
app.$mount("#content");
Vue School has some of our favorite Vue
video courses. Their Vue.js Master Class walks you through building a real
world application, and does a great job of teaching you how to integrate Vue
with Firebase.
Check it out!
Did you find this tutorial useful? Say thanks by starring our repo on GitHub!