Vue Sample Upload

Posted on  by admin

In this tutorial, you’ll learn how to process and upload a file in Vue.js using form input field. Let’s create a form field that will accept image files and make a POST request to the backend server. We’ve masked our input field to make upload button customisable.

File input fields usually use default browser styling and not easily customisable. Hi, I'm Renat 👋. As you can see there should be two methods called onPickFile() and onFilePicked(), let’s build them. Now when you click on the “Upload profile picture” button it will call the onFilePicked() method, which will programmatically trigger the file input field.

When you select a file to upload, onFilePicked() method will be called.

This is where you can validate whether maximum file size was exceeded, file format etc.

More Vue Tutorials

If it passes validation the file will be assigned to the image filed in the data() object.

  • You can then write a method that will submit your file to the back-end server, e.g.
  • If you find this post useful, please let me know in the comments below.
  • Cheers,Renat Galyamov. Want to share this with your friends?👉

PS: Make sure you check other Vue.js tutorials, e.g.

POST/uploadupload a File
GET/filesget List of Files (name & url)
GET/files/[filename]download a File

useful Vue.js filters, how to stop mouse event propagation in Vue.js and load external CSS file into Vue.js component. Vue js image upload with preview example. In this tutorial, you will learn how display image preview before upload in vue js. This tutorial will guide you step by step onhow display image preview before upload in vue js.

As well as, will make simple example of how to upload image with preview before upload in vue js app.


  • Just follow the following steps and display image preview before upload in vue Js app:.
  • Step 1 – Create New VUE JS App.
  • Step 2 – Navigate to Vue Js App.

How to Show Preview Before Upload Image In Vue Js App

Step 3 – Create Image Preview Component. Step 4 – Add Component on App.vue. In this step, open your terminal and execute the following command to create new vue js app:.

In this step, open your terminal and execute the following command to enter your vue js app root directory:.

In this step, visit /src/components directory and create a new component called file-preview.vue and add the following code into it:.


In this step, visit /src/ directory and App.vue file. And then add the following code into it:.

Vue js image upload with preview example. In this tutorial, you have learned how display image preview before upload in vue js. Recommended:-Vue Js For Loop (v-for) Example Tutorial. Recommended:-Vue JS – Add Class To Element On Click Tutorial Example.

Recommended:-Vue JS – Google Map Integration Example. Recommended:-Vue Js Login and Registration Example. Recommended:-Laravel 8 Vue JS Post Axios Request Tutorial.


Recommended:-Laravel 8 Vue JS File Upload Tutorial Example. Recommended:-Laravel 8 Vue Js Infinity Page Scroll Example.


Recommended:-How to implement Datatables with Vuejs And Laravel 8.

Recommended:-Laravel 8 Vue Js Drag & Drop Image Upload Using Dropzone. Recommended:-How to make dependent dropdown with Vue.js and Laravel 8.

Recommended VUE JS Tutorials

Recommended:-Vue JS And Laravel 8 Like Dislike Tutorial Example. Recommended:-Laravel 8 Vue JS Full Calendar Tutorial Example.

  • Using Vue 2 with Axios, you can upload files easily with a few clicks.Using the tag and specifying the type to file, the browser willallow 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 byadding it to a FormData instance.

Below is an example. 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.

File upload component for Vue.js.

– We pass onUploadProgress to exposes progress events. This progress event are expensive (change detection for each event), so you should only use when you want to monitor it.

– We call the post() & get() method of Axios to send an HTTP POST & Get request to the File Upload server.


Let’s create a File Upload UI with Progress Bar, Card, Button and Message.

First we create a Vue component template and import UploadFilesService:


Then we define the some variables inside data()

Next we define selectFile() method which helps us to get the selected Files from ref="file" element in HTML template later.

We also define upload() method for upload file:

We use selectedFiles for accessing current File as the first Item. Then we call UploadService.upload() method on the currentFile with a callback.

The progress will be calculated basing on event.loaded and
If the transmission is done, we call UploadService.getFiles() to get the files’ information and assign the result to fileInfos variable.

Here, fileInfos is an array of {name, url} objects.

We also need to do this work in mounted() method:

Now we implement the HTML template of the Upload File UI. Add the following content to