vue中本地文件下载

这篇博客介绍了如何利用Vue.js结合axios从静态资源目录下载文件,并处理中文文件名的问题。通过添加点击事件,设置响应类型为blob,创建URL并模拟点击下载链接,实现了动态下载模板功能。同时,针对中文文件名可能导致的导出问题,提出了改为英文文件名再重命名的解决方案。
摘要由CSDN通过智能技术生成

1.先把文件放在静态资源 public 中

2.给标签添加点击事件

<a id="download" href="javascript:void(0);" @click="download">下载模板</a>

3.页面中引入axios

import axios from 'axios';

4.为了避免中文无法导出,将待导出文件名称改为英文 “ peoplecode.xls ” ,导出后的名称设置为中文名称 “ 员工工号.xls ”;

download () {          
    axios.get('file/peoplecode.xls', {   //静态资源文件夹public            
        responseType: 'blob',          
    }).then(response => {
        const url = window.URL.createObjectURL(new Blob([response.data]));            
        const link = document.createElement('a');            
        let fname = '员工工号.xls';            
        link.href = url;            
        link.setAttribute('download', fname);            
        document.body.appendChild(link);            
        link.click();          
    }).catch(error => {            
        console.log('error:'+JSON.stringify(error))          
    });        
},

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值