Vue Simple Uploader – Gallery Uploader

A simple UI for Vue to upload a gallery (images) or files with drag & drop for position arrangement

You can upload:

  • Images (including preview mode)
  • Files



Coming soon…


Vue Simple Gallery Uploader

Built with

  • JavaScript
  • Vue 2
  • Sortable


I’m using Bootstrap 3 (only some basic class), it would be normally fine if you’re using Bootstrap (3 or 4).

Next version 0.2.0, I’ll add the standalone styling version.




npm i vue-simple-gallery-uploader

Browser Component

Pick up the latest build in the Release page.

<script src="vue.min.js"></script>
<script src="vue-uploader.umd.min.js"></script>


Node (Basic)

    <VueUploader v-model="myFiles"></VueUploader>
    import VueUploader from 'vue-simple-gallery-uploader'
    export default {
        components: {
            // or if you want do use kebab-case
            // 'vue-uploader': VueUploader


Simply use it without a doubt >o<

<vue-uploader v-model="myFiles"></vue-uploader>

    new Vue({
        data: {
            myFiles: []

Config Options – Component Props

Props Data Type Description
limit Integer Number of files can be uploaded. 0 for unlimited.
Default: 0
formMode Boolean If you’re using the Component inside <form> and you handle the form action like the old fashion way, turn this to “true”.
Vue-Uploader will created 2 hidden fields: files[] and urls[] which contain the fileIDs and fileURLs
Default: false
fileRules String The accept attribute for the input=file.
Default: “image/jpg, image/jpeg, image/png”
acceptedExtensions Array For validation purpose. To check the file’s extension before upload it.
Default: [‘jpg’,’jpeg’,’png’]
endpoint Object API-Endpoint in order to Upload or Delete your image(s).
Must be declared like this:
  “upload”: “https(s)://< your-host >/< your-path >”,
  “delete”: “…”
Note: If the “delete” endpoint is empty/null => When user deleted an image, Vue-Uploader won’t make any request.

API Information

Vue Simple Gallery Uploader need these REST APIs:

  • Upload
  • Delete (Optional)

[POST] Upload API Note


Vue Simple Gallery Uploader will include these data and send to you:

URL: http(s)://<your-host>/<your-path>
Method: POST
Content-Type: multipart/form-data
    - file: Binary data


Success-Response must send the data back like below in order to let the Vue Simple Gallery Uploader works normally:

    "fileId": 1,
    "fileURL": "https://your-host/uploads/imagexyz.jpg"

[DELETE] Delete File API Note

Vue Simple Gallery Uploader will send a request when users clicked the delete icon:

Method: DELETE
URL: http(s)://<your-host>/<your-path>/{fileId}


No response needed.

Ajax Note

Vue Simple Gallery Uploader is smart enough to find your current Ajax Client in the following order:

  • JQuery Ajax ($.ajax)
  • Axios ( && axios.delete)
  • fetch API (Final fallback)

Basic API Implementation

Visit HERE. Quick and not very dirty ExpressJS.

Want to improve?

Feel free to make a fork and create a pull request. I’ll review it.

Demo Images Copyright

Thanks all for great works.


MIT License

Copyright 2020 by Phat Tran aka Seth Phat


View Github