forked from wcongke/upload-file
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathUpload.vue
80 lines (78 loc) · 1.67 KB
/
Upload.vue
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<template lang="pug">
.upload-file
h3 上传图片
p
span form参数
br
code {{ form }}
p
span img地址
br
code {{ img }}
el-upload.uploader(
drag
action="//up.qbox.me/"
v-bind:show-file-list="false"
v-bind:data="form"
v-bind:before-upload="handleBeforeUpload"
v-bind:on-success="handleSuccess"
)
img.img(:src="img" v-if="img")
div(v-else)
i.el-icon-upload
.el-upload__text 将图片拖拽至此
</template>
<script>
export default {
data () {
return {
form: null,
img: null
}
},
methods: {
/** @argument
* 上传文件前处理
* @param {file} file
*/
handleBeforeUpload (file) {
let params = {
fileName: file.name
}
return this.axios.get('/api/upload', {params})
.then((res) => {
if (res.data.code === '1') {
this.form = {
key: res.data.result.fileName,
token: res.data.result.uploadToken
}
} else {
this.$message.error('上传图片失败')
}
})
.catch(() => {
this.$message.error('上传图片失败')
})
},
/** @argument
* 文件上传成功后处理
* @param {Object} response
* @param {file} file
* @param {fileList}
*/
handleSuccess (response, file, fileList) {
this.img = `http://oconcdnvn.bkt.clouddn.com/${response.key}`
}
}
}
</script>
<style lang="stylus" scoped>
.upload-file
.uploader
.el-upload
.el-upload-dragger
min-height 180px
height auto
.img
width 100%
</style>