1.文件下载

<el-button plain @click ="exportVmExcel()"  size='mini' icon="el-icon-download" style="margin-left:10px;">模板下载</el-button>

exportVmExcel() {
var language = i18n.locale;
console.log("language==="+language);
//模板下载
Api.templateDownload(language).then(res => {
if (res) {
self.handlerDownloadResult({
res: res,
optionType: "vm-template"
});
}
}) }, //API写法,用户模板下载
templateDownload(language) {
return axios({
method: 'get',
url: '/api/vmachine/download/template?language='+language,
responseType: 'blob'
})
},

2.文件导入

<el-button size='mini' @click="chooseFile" ref="upload"> <i class="fa fa-share" > </i>&nbsp;&nbsp;{{$t('导入')}}</el-button>
<input type="file" v-if = "ishowFile" style="display: none" name ="attence" @change="changeFile($event)" ref ="attenceInput" aria-hidden="true">
<input type="file" style="display: none" name ="attence" @change="changeFile($event)" ref ="attenceInput" aria-hidden="true"> //批量导入,选择文件
chooseFile(){
let isTerminal = this.selectTenant
if(isTerminal){
if(this.jumpOrDialog.tenantId == ''){
this.$message({
message: this.$t('text.vmValidates.message6'),
type: "warning"
});
return
}
}
this.$refs.attenceInput.click();
this.ishowFile = false // 销毁
},
changeFile(val){
this.quantityImport(val)
},
quantityImport(val){
let isLt5M = val.target.files[0].size / 1024 / 1024 <= 5;
this.selectedFile = val.target.files[0];
if (this.isExcel() == true && isLt5M == true) {
let isTerminal = this.selectTenant;
let tenantId = '';
let tenantName = '';
if(isTerminal){
tenantId = this.jumpOrDialog.tenantId
tenantName = this.jumpOrDialog.tenantName
}else{
let userInfo = JSON.parse(localStorage.getItem("userInfo"))
tenantId = userInfo.tenantId
tenantName = userInfo.tenantName
}
let vmData = {
tenantId: tenantId,
pageNum: this.pageNum,
pageSize: this.pageSize
}
let formdata = new FormData();
formdata.append('file', this.selectedFile);
var map = {
formdata:formdata,
}
Api.batchImport(map,tenantId,tenantName,this.createUserId,this.createUserName).then(res => {
if(res.status == '200'){
this.$message.success(this.$t('112.uploadSuccess'));
this.getAllVmRegister(vmData)
this.selectedFile = ""
this.ishowFile = true
}else{
this.$message({
message: this.$t('264845'),
type: "error",
showClose: true,
duration:6000,
});
// this.$message.error(this.$t('ploadFailue'));
this.getAllVmRegister(vmData)
}
}).catch( re => {
if(re.response.data.code == '110'){
var errMessages1 = re.response.data.message;
this.$message({
type: 'error',showClose: true,duration:6000,
message: this.$t('1352.79865.23)
});
}else{
this.$message({
type: 'error',showClose: true,duration:6000,
message: this.$t('15973')
});
}
})
}
this.selectedFile = ""
this.ishowFile = true
},
isExcel() {
let self = this;
let filename = self.selectedFile.name;
let arr = filename.split('.');
if (arr[1] !== 'xls') {
console.log(this.$t('12356'));
this.$message({
message: this.$t('123123'),
type: "error",
showClose: true,
duration:6000,
}); return false;
} else {
return true;
}
},

//API批量新增

batchImport: (data,tenantId,tenantName,createUserId,createUserName) => {
return axios({
method: 'post',
header: {
"Content-Type": "multipart/form-data",
},
url:`/api/vmachine/register/batch?` +'tenantId='+tenantId+'&tenantName='+tenantName+'&createUserId='+createUserId+'&createUserName='+createUserName,
data: data.formdata
})
},

vue.js+elementUI文件上传、文件导入、文件下载的更多相关文章

  1. js实现分段上传文件

    使用js实现分段上传文件,本文使用了FileReader对象,可参考:https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader 1)获取文 ...

  2. vue+element ui 的上传文件使用组件

    前言:工作中用到 vue+element ui 的前端框架,使用到上传文件,则想着封装为组件,达到复用,可扩展.转载请注明出处:https://www.cnblogs.com/yuxiaole/p/9 ...

  3. vue form表单上传文件

    <script src="https://cdn.staticfile.org/vue-resource/1.5.1/vue-resource.min.js">< ...

  4. Nodejs学习笔记(八)--- Node.js + Express 实现上传文件功能(felixge/node-formidable)

    目录 前言 formidable简介 创建项目并安装formidable 实现上传功能 运行结果 部分疑惑解析 写在之后 前言 前面讲了一个构建网站的示例,这次在此基础上再说说web的常规功能---- ...

  5. JS 异步分段上传文件

    为了解决大文件上传 (PHP上传最大限制2GB) 同时为了解决文件上传是对服务器造成的压力 可以通过分段上传解决这个问题,这得益于HTML5开发的file API 前台代码: 引用了进度条插件myPr ...

  6. Nodejs学习笔记(八)—Node.js + Express 实现上传文件功能(felixge/node-formidable)

    前言 前面讲了一个构建网站的示例,这次在此基础上再说说web的常规功能----文件上传,示例以一个上传图片的功能为例子 上传功能命名用formidable实现,示例很简单! PS:最近比较忙,距上一次 ...

  7. c#+js 使用formdata上传文件

    如果不是使用form表单submit的形式,我们可以手动通过formdata传值(针对文件上传等) 比如: <html> <head> <meta name=" ...

  8. js拖拽上传 文件上传之拖拽上传

    由于项目需要上传文件到服务器,于是便在文件上传的基础上增加了拖拽上传.拖拽上传当然属于文件上传的一部分,只不过在文件上传的基础上增加了拖拽的界面,主要在于前台的交互, 从拖拽的文件中获取文件列表然后调 ...

  9. js无刷新上传文件

    传统的文件上传方式 <form action="" method="POST" enctype="multipart/form-data&quo ...

  10. element-ui upload上传文件并携带参数 使用formData对象

    需求:上传文件的时候,需要携带其他的参数 问题:使用upload上传文件时,必须使用formData对象,而其他的参数通过data获取的到的,formData和data是不能同时传输的 解决:获取到的 ...

随机推荐

  1. 38KHz,NEC红外模拟发送和接收程序

    /*************************************************************************************************/ ...

  2. PHP设计模式之模板方法模式

    模板方法模式,也是我们经常会在不经意间有会用到的模式之一.这个模式是对继承的最好诠释.当子类中有重复的动作时,将他们提取出来,放在父类中进行统一的处理,这就是模板方法模式的最简单通俗的解释.就像我们平 ...

  3. CSS linear-gradient() 函数

    用于背景颜色渐变或画线条等场景 linear-gradient() 函数用于创建一个表示两种或多种颜色线性渐变的图片. 创建一个线性渐变,需要指定两种颜色,还可以实现不同方向(指定为一个角度)的渐变效 ...

  4. ecshop调用指定分类热销-新品-精品

    在模板页里首页写上代码:         <?php$children = get_children(16);//此处为产品分类ID$smarty->assign( 'bestGoods1 ...

  5. jenkins自动构建前端项目(window,vue)

    我们把一个多人协作的vue前端项目发布服务器,一般要经过以下步骤: git更新最新的代码 构建项目 把构建后的代码上传到服务器 如果用jenkins来构建的话,只需要点击一次构建按钮,就可以自动完成以 ...

  6. [转]js之this,call,apply用法

    (一)关于this 首先关于this我想说一句话,这句话记住了this的用法你也就差不多都能明白了:this指的是当前函数的对象.这句话可能比较绕,我会举出很多例子和这句话呼应的!(看下文)1.首先看 ...

  7. 多个ssh key 配置多个网址

    多个 ssh key 配置多个网站 一.生成ssh key ssh-keygen -t rsa -C "你的邮箱" -f ~/.ssh/id_rsa_one ssh-keygen ...

  8. 从零入门 Serverless | 一文搞懂函数计算及其工作原理

    作者 | 孔德慧(夏莞) 阿里云函数计算开发工程师 什么是函数计算 大家都了解,Serverless 并不是没有服务器,而是开发者不再需要关心服务器.下图是一个应用从开发到上线的对比图: 在传统 Se ...

  9. 洛谷4606 SDOI2018战略游戏(圆方树+虚树)

    QWQ深受其害 当时在现场是真的绝望...... 现在再重新来看这个题 QWQ 根据题目所说,我们可以发现,对于每一个集合中的节点,我们实际上就是要求两两路径上的割点的数目 考虑到又是关于点双的题目, ...

  10. fastdfs单节点部署

    fastdfs单机版搭建 参考链接:https://blog.csdn.net/prcyang/article/details/89946190 搭建步骤 安装依赖 ​ yum -y install ...