vue-upload-component
Vue.js file upload component, Support for multiple file uploads, progress, html4, ie9
Html4 does not support the progress bar, file size, accept, timeout, headers, response status code error of judgment
Install
npm install vue-upload-component@next --save
CommonJS
var FileUpload = require('vue-upload-component');
new Vue({
template: '<file-upload post-action="/post.method" put-action="/put.method"></file-upload>',
components: {
FileUpload: FileUpload
}
})
ES6
import FileUpload from 'vue-upload-component'
new Vue({
template: '<file-upload post-action="/post.method" put-action="/put.method"></file-upload>',
components: {
FileUpload
}
})
Example
https://lian-yue.github.io/vue-upload-component/
<div id="app">
<file-upload title="Add upload files"></file-upload>
</div>
<script type="text/javascript">
var FileUpload = require('vue-upload-component');
new Vue({
el:'#app',
components: {
FileUpload:FileUpload,
},
});
</script>
Build Setup
npm install
npm run dev
npm run build
Setting
Props
<file-upload
title="Add upload files"
name="post file name"
drop="Boolean (true = $parent) or Element or Css Selector"
extensions="Array or String or Regular"
post-action="./post.method"
put-action="./put.method"
accept="accept"
multiple="true or false"
size="max Size"
timeout="3600000"
events="Object"
headers="Request headers object"
data="Request data object"
files="Upload files"
>
</file-upload>
Props events
events: {
add(file, component) {
console.log('add');
if (this.auto) {
component.active = true;
}
file.headers['X-Filename'] = encodeURIComponent(file.name)
file.data.finename = file.name
},
progress(file, component) {
console.log('progress ' + file.progress);
},
after(file, component) {
console.log('after');
},
before(file, component) {
console.log('before');
}
}
Props files
[
{
id: 'String',
name: 'filename String',
size: 'filesize Number',
progress: 'progress String',
speed: "Speed Number",
active: 'active Boolean',
error: 'error String',
success: 'success Boolean',
data: 'Response data Object or String',
putAction: 'String uri',
postAction: 'String uri',
timeout: "Number",
headers: {
"X-Csrf-Token": "xxxx",
},
data: {
"_csrf_token": "xxxxxx",
},
xhr: "False or XMLHttpRequest object",
iframe: "False or Element object",
file: "undefined or File object"
el: "undefined or Input object"
}
]
data
{
mode: 'html5',
active: false,
uploaded: true,
dropActive: false,
}