reach Umi 项目下载文件

1 篇文章 0 订阅

reach Umi 获取后端api返回的文件流实现下载功能

umijs项目中想要实现下载功能要使用文件流下载的方式

一、后端文件流

我这边是下载压缩包
压缩包生成下载的方法
https://blog.csdn.net/qq_42894991/article/details/128918840?spm=1001.2014.3001.5501

二、前端调用

import { request } from 'umi';

// @url : `后端获取文件流的地址`
// @filenName  : `下载后的文件名`
// @data: `请求获取文件流的参数`
const download = async (url,filenName,data) => {
  const blob = await request(url, {
    method: 'GET',
    params: { ...data },
    // ...(options || {}),
    responseType: 'blob', // 必须配置这个,不然获取到的文件格式会错误
  });
  if (blob) {
    // 创建Blob对象,设置文件类型
   const  blob = new Blob([res], {
      type: 'Content-Type: application/zip;'
    })

    const link = document.createElement('a');
    // 下载后的文件名
    link.download = filenName+".zip";
    link.href = URL.createObjectURL(blob);
    document.body.appendChild(link)
    link.click();
    //释放URL对象
    URL.revokeObjectURL(link.href);
    document.body.removeChild(link);
    message.success("成功")
  }
  return response;
};

export { download };
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值