热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

VUE+VANT实现文件上传读取及下载功能

项目中要实现的效果   1、页面布局下载导入模板

项目中要实现的效果

 

 

 1、页面布局

<p class="download" @click="downloadExcel">下载导入模板p>
<div class="uploader-box">
<van-uploader v-model="fileList" accept=".xls, .xlsx" :after-read="afterRead" :deletable="false" @delete="delFile" multiple>
<van-icon name="plus" />
van-uploader>
div>

2、VUE方法代码

// 下载excel
downloadExcel() {
templateDownLoad().then(res
=> {
// var fileName = res.headers("Content-Disposition").split(";")[1].split("filename=")[1];
// var fileNameUnicode = res.headers("Content-Disposition").split("filename*=")[1];
// if (fileNameUnicode) {// filename* 时,取filename* 并进行解码
// fileName = decodeURIComponent(fileNameUnicode.split("''")[1]);
// }
let blob = new Blob([res], {
type:
'application/vnd.ms-excel'
})
if ('msSaveOrOpenBlob' in navigator) { // IE导出
window.navigator.msSaveOrOpenBlob(blob, fileName);
}
const link
= document.createElement('a')
link.style.display
= 'none'
link.href
= URL.createObjectURL(blob)
link.download
= '雇主团单投保信息导入模版' //下载的文件名
document.body.appendChild(link)
link.click()
document.body.removeChild(link)
}).
catch(error => {
this.$toast("下载失败,请稍后重试!")
})
},

//上传文件
afterRead(file) {
let _this
= this
const formData
= new FormData();
formData.append(
'file', file.file)
excelUpload(formData).then(res
=> {
if (res.code == '0') { // 文件上传成功
this.$toast("文件上传成功!")
this.employerObj.empOrderInfo = res.result
this.submitFlag = false
}
else if(res.code == '001') { // 下载错误信息
setTimeout(function(){
_this.errorFlag
= true
_this.fileNo
= res.result.contractNo
},
1000)
}
else if(res.code == '110001') { // 直接提示错误信息
this.$toast(res.message)
}
}).
catch(error => {
console.log(error)
})
},

 

3、配置接口请求方式,responseType: bolb

/**
* 模板下载
* *
*/
export
function templateDownLoad(){
return http.get(`${URI.augeas}/geek/emp/templateDownLoad`,{responseType:'blob'})
}

如有问题,欢迎大家指正

认真做事儿,踏实做人



推荐阅读
  • 1.安装cordovapluginaddcordova-plugin-file-transfercordovapluginaddcordova-plugin-fi ... [详细]
  • 8月3日每日安全热点用Chankro绕过PHP disable_functions
    8月3日每日安全热点用Chankro绕过PHP disable_functions ... [详细]
  • JS加密解密
    leta=汪政..222RRRp767868^*%^*%344h哈哈;letb=udp.d(ud(a));//需要加密的内容letc=udp. ... [详细]
  • cp.php这四个,那么我们如何根据你访问的URL判断涉及到那些PHP文件和模板文件,方便您的进一步修改!好了,现在我们以最 ... [详细]
  • ASP.NET使用Ajax如何返回Json对象的示例方法介绍
    这篇文章主要介绍了ASP.NET使用Ajax返回Json对象的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下一、 ... [详细]
  • R语言基础_数据导入&保存
    数据分析文件常用的储存格式为CSV(.csv)和EXCEL(.xlsx),其余文 ... [详细]
  • IndexController.class.phpindex.html(在view里建个和控制器同名的文件夹Index再建个和方法同名的 ... [详细]
  • 我正在使用jQuery并让服务器代码返回以下值0:SELECTONE;1:VALUE1;2:VALUE2etc如何将其填充到 ... [详细]
  • 做好了项上,其中包含有一个上传的功能。在开发环境和测试环境运行、测试都没什么问题。也许是由于本地的局域网的问题,一切都运行的比较快,但把它发布到外网的服务器上去时。就特别的慢。上传小的文件还算比 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 如何在php文件中添加图片?
    本文详细解答了如何在php文件中添加图片的问题,包括插入图片的代码、使用PHPword在载入模板中插入图片的方法,以及使用gd库生成不同类型的图像文件的示例。同时还介绍了如何生成一个正方形文件的步骤。希望对大家有所帮助。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文介绍了关系型数据库和NoSQL数据库的概念和特点,列举了主流的关系型数据库和NoSQL数据库,同时描述了它们在新闻、电商抢购信息和微博热点信息等场景中的应用。此外,还提供了MySQL配置文件的相关内容。 ... [详细]
  • AFNetwork框架(零)使用NSURLSession进行网络请求
    本文介绍了AFNetwork框架中使用NSURLSession进行网络请求的方法,包括NSURLSession的配置、请求的创建和执行等步骤。同时还介绍了NSURLSessionDelegate和NSURLSessionConfiguration的相关内容。通过本文可以了解到AFNetwork框架中使用NSURLSession进行网络请求的基本流程和注意事项。 ... [详细]
author-avatar
胡敏qiang
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有