您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
这篇文章将为大家详细讲解有关怎么在vue项目中利用el-upload实现一个文件上传功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
<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 size="small" type="primary" @click="submitUpload">上传到服务器</el-button> <div slot="tip" class="el-upload__tip">只能上传csv/xslx/xsl文件,且不超过1M</div> </el-upload>
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实现一个文件上传功能就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。