首页 > 其他分享 >封装文件下载的方法

封装文件下载的方法

时间:2022-08-23 09:11:06浏览次数:47  
标签:文件 axios 封装 请求 url token link 下载

1、在封装请求拦截的js文件中需要有以下准备条件:

引入axios,在请求前加上token(这里token是从vuex中取的,这里不再阐述在vuex中的保存方法)

 1 import axios from 'axios'
 2 // 设置post请求头
 3 axios.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8'
 4 const http = axios.create({
 5   // baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url api的baseUrl
 6   timeout: 30000 // 请求超时时间
 7 })
 8 
 9 http.interceptors.request.use(config => {
10   // 在发送请求之前做些什么 验证token之类的
11   if (store.getters.token) {
12     config.headers['Authorization'] = store.getters.token ? getToken() : store.getters.token
13   }
14   return config
15 }, error => {
16   // 对请求错误做些什么
17   Message.error({ message: '请求超时!' })
18   return Promise.error(error)
19 })

2、文件下载封装函数,然后导出该方法

 1 /**
 2  * Request请求,文件下载
 3  * @param RequestParams Path 请求地址,Method请求方法
 4  * @param urlParams 请求参数拼接在url上
 5  * @param data 请求参数放在请求体
 6  * **/
 7 export function RequsetForDownLoadFile(RequestParams, urlParams, responseData, FileName) {
 8   return new Promise((resolve, reject) => {
 9     http({
10       method: RequestParams.Method,
11       url: RequestParams.Path,
12       params: urlParams, // 请求参数拼接在url上
13       data: responseData, // 请求参数放在请求体
14       responseType: 'blob'
15     })
16       .then(response => {
17         const link = document.createElement('a')
18         const blob = new Blob([response.data], { type: 'application/vnd.ms-excel' })
19         link.style.display = 'none'
20         link.href = URL.createObjectURL(blob)
21         // link.download = res.headers['content-disposition'] //下载后文件名
22         link.download = FileName // 下载的文件名
23         document.body.appendChild(link)
24         link.click()
25         document.body.removeChild(link)
26         resolve(response.data)
27       }).catch(err => {
28       // 请求失败
29         reject(err)
30    })
31  })

3、在需要下载的页面中导入并调用

import { RequsetForDownLoadFile } from '...'
RequsetForDownLoadFile({ Method: 'get', Path: '/api/pesp-manage-system/fapsysfile/downloadFile' }, { 请求地址后拼接的参数 }, null, 请求体中的参数)

 

标签:文件,axios,封装,请求,url,token,link,下载
From: https://www.cnblogs.com/heisetianshi/p/16614946.html

相关文章

  • .NET(C#) 读取Resource资源文件的方法
    System.Resources名字空间支持三种资源文件:.txt文件,只能有字符串资源。不能被嵌入到Assembly中,则很容易暴露,被客户修改。最大缺点是仅支持字符串资源,不推荐使用。.resx......
  • JetBrains Fleet 1.8 最新测试版功能C#,Rust开发演示与免费下载地址
     链接:https://pan.baidu.com/s/1KSBUhfeFG8KwNZVJBg9mTg?pwd=27at提取码:27at请勿用手机百度网盘下载文件会打不开JetBrainsFleet1.8最新版安装包Windows,M......
  • 文件IO-chdir-getcwd
    getcwd#include<stdio.h>#include<stdlib.h>#include<unistd.h>#defineMAX512intmain(intargc,char*argv[]){//方法一charpath[MAX];......
  • 【教程】微信推文怎么添加附件文档 (如word文档、excel表格、pdf文件)
     对于很多企业单位、中小学校公众号来说,有时在对外发布信息时,需要在公众号文章中插入各种文档附件,如:应聘报名表、健康承诺书、记录统计表、防疫登记表、申报评分、公告通......
  • mybatis 配置文件mybatis.xml的加载过程
    mybatis配置文件的整体加载过程mybatis几乎所有的用户相关的操作都是再SqlSession上进行的,儿sqlSession是由SqlSessionFactory调用openSession方法创建的.正常情况下......
  • 《GB12557-2010》PDF下载
    《GB12557-2010木工机床安全通则》PDF下载《GB12557-2010》简介本标准规定了木工机床的安全技术要求;本标准适用于除木工手提机外的所有木工机床。 《GB12557-20......
  • 《GB14925-2010》PDF下载
    《GB14925-2010实验动物环境及设施》PDF下载《GB14925-2010》简介本标准规定了实验动物及动物实验设施和环境条件的技术要求及检测方法,同时规定了垫料、饮水和笼具的......
  • 《GB14923-2010》PDF下载
    《GB14923-2010实验动物哺乳类实验动物的遗传质量控制》PDF下载《GB14923-2010》简介本标准规定了哺乳类实验动物的遗传分类及命名原则、繁殖交配方法和近交系动物的......
  • git 添加忽略文件
    在主目录下建立“.gitignore”文件文件示例/data//celeryTask//.gitignore*.txt规则如下:在主目录下建立“.gitignore”文件,此文件有如下规则:忽略文件中空行或以#......
  • Ubuntu20下载安装Docker
    安装Docker卸载旧版本sudoapt-getremovedocker\docker-engine\docker.io使用apt安装sudoapt-getupdatesudoapt-geti......