话不多说 直接上代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<el-upload
:action= "actionUrl"
class= "avatar-uploader"
:multiple= "false"
name= "files"
ref= "upload"
:file-list= "fileList"
:on-preview= "handlePreview"
:on-success= "handleSuccess"
:before-upload = "beforeUpload"
:http-request= "httpRequest"
:on-exceed= "handleExceed"
:on-change= "handleChanged"
accept= ".csv,.xls,.xlsx"
:auto-upload= "false"
>
<el-button slot= "trigger" size= "small" >选取文件</el-button>
<el-button style= "margin-left: 10px;" size= "small" type= "primary" @click= "submitUpload" >上传到服务器</el-button>
<div slot= "tip" class= "el-upload__tip" >只能上传csv/xslx/xsl文件,且不超过1M</div>
</el-upload>
|
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
81
82
83
84
85
86
87
88
89
|
actionUrl: `${env.imgCaptchaUrl}**/upload`,
fileList: [],
handleChanged(file,fileList){
this .fileList = fileList
},
handleExceed (file, fileList) {
console.log(file);
},
handleSuccess (res, file) {
console.log(file);
console.log(res);
},
handlePreview(file){
console.log(file);
},
beforeUpload (file) {
if (file.size / 1024 / 1024 > 1) {
Vue.$vux.toast.text( '上传文件不超过1M' )
return false
}
var ext = file.name.substring(file.name.lastIndexOf( '.' ) + 1)
const extension =
ext === 'csv' ||
ext === 'CSV' ||
ext === 'xlsx' ||
ext === 'xls'
if (!extension) {
Vue.$vux.toast.text( '上传文件格式只能为csv、xlsx/xls' )
return false
}
},
httpRequest (opt) {
const _this = this
const file = opt.file
Vue.$vux.toast.text( '文件上传中...' )
var reader = new FileReader()
reader.readAsDataURL(file)
reader.onload = function (e) {
let imgType = ''
var ext = file.name.substring(file.name.lastIndexOf( '.' ) + 1)
if (ext === 'csv' ) {
imgType = 'csv'
}
if (ext === 'xlsx' || ext === 'xls' ) {
imgType = 'xlsx'
}
uploadCsv({
files: this .result.replace(`data:image/${imgType};base64,`, '' )
})
.then(res => {
if (res.errno === 0) {
Vue.$vux.toast.text( '上传成功' )
_this.account.license_url = res.data.url
}
})
. catch (err => {})
}
},
submitUpload(){
if ( this .fileList.length==0){
this .successDialog = "请先选择文件" ;
this .sussAlog = true ;
return
}
this .$refs.upload.submit();
},
onDownload(){
let start = ""
let end = ""
if ( this .form.time){
start = parseTime( this .form.time[0]);
end = parseTime( this .form.time[1]);
}
delete ( this .form.time)
Object.assign( this .form, {
first_time: start,
end_time: end ,
});
let {
first_time,
end_time,
} = this .form;
window.open( this .downUrl+ "lm/downloadModel?" +
"&first_time=" +first_time+
"&end_time=" +end_time
, '_blank' );
},
|
以上就是vue el-upload上传文件的示例代码的详细内容,更多关于vue el-upload上传文件的资料请关注服务器之家其它相关文章!
原文链接:https://www.cnblogs.com/yangsg/p/13182228.html