saivarunk / vue-simple-upload

Simple File upload component for Vue.js
https://saivarunk.github.io/vue-simple-upload/
MIT License
148 stars 30 forks source link
vue vue-component vue-components

vue-simple-upload

npm npm vue2 Build Status

An simple file upload component for vue.js.

Checkout Demo on JSFiddle

Installation

npm install vue-simple-upload

Usage

vue-simple-upload is a UMD module, which can be used as a module in both CommonJS and AMD modular environments. When in non-modular environment, FileUpload will be registered as a global variable.

ES6


import FileUpload from 'vue-simple-upload/dist/FileUpload'

export default {
  ...
  components: {
    'fileupload': FileUpload
  },
  ...
}

After that, you can use it in your templates:

<fileupload target="http://localhost:8000/api/upload" action="POST"></fileupload>

CommonJS

var Vue = require('vue')
var FileUpload = require('vue-simple-upload')

var YourComponent = Vue.extend({
  ...
  components: {
    'fileupload': FileUpload.FileUpload
  },
  ...
})

Browser

<script src="https://github.com/saivarunk/vue-simple-upload/raw/master/path/to/vue/vue.min.js"></script>
<script src="https://github.com/saivarunk/vue-simple-upload/raw/master/path/to/vue-simple-upload/dist/vue-simple-upload.min.js"></script>
<script>
new Vue({
  ...
  components: {
    'fileupload': FileUpload.FileUpload
  },
  ...
})
</script>

Usage

<template>
<fileupload target="http://localhost:8000/api/upload" action="POST" v-on:progress="progress" v-on:start="startUpload" v-on:finish="finishUpload"></fileupload>
</template>

<script>
new Vue({
  ...
  components: {
    'fileupload': FileUpload.FileUpload
  },
  methods: {
    startUpload(e) {
      // file upload start event
      console.log(e);
    },
    finishUpload(e) {
      // file upload finish event
      console.log(e);
    },
    progress(e) {
      // file upload progress
      // returns false if progress is not computable
      console.log(e);
    }
  }
})
</script>

Props

Events

You can access the file upload events using v-on methods.


methods() {
  startUpload(e) {
    // start event
  }
}

methods() {
  finishUpload(e) {
    // finish event
  }
}

methods() {
  progress(e) {
    // listen to file upload progress
  }
}

Todos

License

Released under the MIT License.