vue中文件的下载

  • 下载前端静态资源
    1.将需要下载的资源放在public中
    2.在需要下载的组件A中,加入如下内容
<template>
	<div>
		<a :href="url('/用户管理-批量导入模板.xlsx')" download="用户管理-批量导入模板.xlsx">
        	<Button type="error">下载模板</Button>
     	</a>
	</div>
</template>
<script>
	export default {
		methods:{
			url(val){       //val为文件名称,需要和下载的资源名称保持一致
		      return 'http://'+window.location.host + val
		    },
		}
	}
</script>
  • 通过接口下载后端资源
    1.在需要下载的组件B中,加入如下内容
<template>
	<div>
		<a-button type="primary" @click="exportfiles">模板下载</a-button>
	</div>
</template>
<script>
	import { Download } from "@/api/Download.js";  //引入Download()方法
	export default {
		methods:{
			exportfiles(){  //导出
		      Download(params).then(r=>{    //DownLoad()为封装好的请求接口,params为接口需要的参数
		           const excelUrl = window.URL.createObjectURL(new Blob([r]));   //r为接口返回的二进制流数据
		           const link = window.document.createElement('a');
		           link.href = excelUrl;
		           link.download = `组织机构批量导入模板.xlsx`;   //下载名称可自定义
		           document.body.appendChild(link);   // 兼容FireFox
		           link.click();
		           window.URL.revokeObjectURL(excelUrl);
		           link.remove();    // 兼容FireFox
		      })
		    },
		}
	}
</script>

2.新建一个Download.js文件,内容如下(axios请求封装https://blog.csdn.net/hyy4668/article/details/107509274

import { axios } from "@/utils/request";  //引入封装好的axios请求

export function Download(data){  //接口请求配置
    return axios({
      url: `download-request-url`,
      method: 'get',
      responseType: 'blob',  //返回数据为二进制流时的响应类型
      params: data,   //参数
    })
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值