前端导出文件,后端返回文件流过大直接干崩溃

前端导出文件

  • 前端很常见的导出需求 导出world xlsx 甚至是zip

  • 在我这个项目中是导出图片,图片量还是蛮大的,直接干崩溃了
    在这里插入图片描述

  • 我们这里是后端同学直接返回的是文件流

  • 通过调用接口拿到文件流后直接调用下面的方法

    export function exportZip(res, name) {const blob = new Blob([res.data], {type: 'application/zip'})const reader = new FileReader()reader.readAsDataURL(blob)reader.onload = function (e) {const a = document.createElement('a')a.download = `${name}.zip`a.href = e.target.result// 兼容触发clickconst evt = document.createEvent('MouseEvents')evt.initEvent('click', true, true)a.dispatchEvent(evt)}
    }
    

    然后就出现上面的崩溃,分析后是因为文件流太大导致的,解决办法如下:

  1. 直接让后端同学将zip准备好,调用接口返回的是一个地址 我们通过访问地址来下载zip

    	    <a @click="downFile()">{{文件名称}}</a>//下载方法downZip () {let a = document.createElement('a')a.href = '这里是后端同学返回的地址'a.click()}```
    
  2. 我们可以接收较大的文档流—在 github 上面找到了大神写的一个库

    • 首先安装(基于Vue,也可以去访问gitHub上下载:https://github.com/eligrey/FileSaver.js)

      npm install file-saver --save

    • 引入方法

      import { saveAs } from ‘file-saver’;

    • 通过调用上面引入的方法来接收很大的文件流 (修改我们上面的exportZip方法如下)

      export function exportZip(res, name) {const blob = new Blob([res.data], {type: 'application/zip'})saveAs(blob, name)
      }

再试试就搞定了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/248704.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue和iview-admin搭建的项目进行兼容

写在前面&#xff1a; 用iview-admin创建的基于Vue的项目&#xff0c;开发完成后&#xff0c;用户是使用的360浏览器&#xff0c;其中有两个模式&#xff0c;一个是极速模式&#xff08;谷歌内核&#xff09;&#xff0c;一个是兼容模式&#xff08;IE内核&#xff09;&#x…

Vue 打包后打开为空白页面 并且控制台报错‘Failed to load resource: net::ERR_FILE_NOT_FOUND’

问题描述 当我们开发完成后进行 npm run build打包后形成dist文件 我们通过访问dist文件中的index&#xff0c;会出现空白页面什么都不显示的问题&#xff0c;控制台中还会报‘Failed to load resource: net::ERR_FILE_NOT_FOUND’错误&#xff0c;其实是因为打包后的dist目录…

引用Nuget包Microsoft.EntityFrameworkCore.Tools.DotNet报错

错误如下 解决方法 使用VS2017或更高版本在改项目右键&#xff0c;选择“编辑xxx.csproj”&#xff0c;并添加如下一句话&#xff0c;就可以成功引用改Nuget包 <PackageReference Include"Microsoft.EntityFrameworkCore.Tools.DotNet" Version"2.0.3"/…

echarts 折线图 多条折线数据相同时展示的图形并没有重合

简单粗暴的使用echarts官网展示用例 我讲series中的几个对象中的值都改成了相同的 看到数值相同 图表中却没有重合 后面发现解决办法如下 只需要将对象中的stack属性删除就可以了&#xff0c;不仅仅针对这个问题 有时候我们发现图表展示的数据跟y周的值有差距时可以试试这个…

Django,ajax实现表格增删查改,Django内置分页功能。

1.工程目录 2.urls.py """Django_ajax URL ConfigurationThe urlpatterns list routes URLs to views. For more information please see:https://docs.djangoproject.com/en/2.1/topics/http/urls/ Examples: Function views1. Add an import: from my_app im…

前端登录逻辑

话不多说直接上图片&#xff0c;纯手工打造

echarts 多次通过setOption改变图形数据时 数据有时不进行变化

需求&#xff1a;通过切换xyz三个选项&#xff0c;进行切换统计图中的折线条数 当前数据为正确&#xff0c;页面加载默认选中x轴&#xff0c;当选中xy后也没有问题 当我取消y轴时 发现图表并没有进行变化 但是option中的数据确实已经刷新了&#xff0c;猜测是在setOption时候…

2019春总结作业

2019春总结作业 一丶我学到的内容 &#xff08;整理本课程所学&#xff0c;用思维导图的方式,思维导图的工具可以使用&#xff1a;XMind&#xff09; 二丶我的收获&#xff08;包括我完成的所有作业的链接收获&#xff09; 在这个星期里&#xff0c;我们专业的学生在专业老师的…

【数据结构入门精讲 | 第十七篇】一文讲清图及各类图算法

在上一篇中我们进行了的并查集相关练习&#xff0c;在这一篇中我们将学习图的知识点。 目录 概念深度优先DFS伪代码 广度优先BFS伪代码 最短路径算法&#xff08;Dijkstra&#xff09;伪代码 Floyd算法拓扑排序逆拓扑排序 概念 下面介绍几种在对图操作时常用的算法。 深度优先D…

安装一个插件、回馈给你一款属于猿的绚丽浏览器

不知道大家有没有了解&#xff0c;由CSDN推出的一款CSDN浏览器助手&#xff0c;其实哈就我个人而言对一些助手、插件还是很有兴趣的&#xff0c;毕竟他能够让我们快速高效的去完成我们的操作。但是一直没有找到一款称心如意的&#xff0c;知道遇见了这款CSDN浏览器助手让我爱不…

《看完它面试必solo | 寻找C站宝藏》

今天给大家搂点干货&#xff0c;2020 年 9 月 18 日晚 11 点半发布了 Vue 3.0 版本。到目前已经很多公司开始鼓励大家去学习Vue3了&#xff0c;在这里小编就把自己所了解到的‘皮毛’贡献给大家 Vue3.0 的突出亮点 Performance&#xff1a;性能比Vue2快1.2~2倍Tree shaking s…

KVC/KVO 本质

KVO 的实现原理 KVO是关于runtime机制实现的当某个类的对象属性第一次被观察时&#xff0c;系统就会在运行期动态地创建该类的一个派生类&#xff0c;在这个派生类中重写基类中任何被观察属性的setter方法。派生类在被重写的setter方法内实现真正的通知机制如果原类为Person&am…

攻破 程序员35岁 “瓶颈” 那都不是事!

我正在参与CSDN《新程序员》有奖征文&#xff0c;点击和我一起参与吧 下面呢&#xff0c;我就在这里给大家讲述一下我的经历吧。 初衷 作为程序猿的我们&#xff0c;初衷在哪里&#xff0c;高薪&#xff1f;体面&#xff1f;热爱&#xff1f;曾经有一个同学聊天中说到这个话…

Vue项目中引用‘阿里巴巴字体图标库iconfont’

1.前言 在实际开发中&#xff0c;作为前端开发人员的我们经常会遇到下面这种ui图 我们看到在上面两个平台设计图中的出现了大量的图标&#xff0c;在某种情况下&#xff0c;这种图标是需要我们自己去找的&#xff0c;不要喷我们的 ui 哈&#xff0c;主要是我喜欢麻烦 哈哈&…

项目流程

转载于:https://www.cnblogs.com/Koma-vv/p/10243286.html

最详细的讲解 JS 原型与原型链

文章目录一. 普通对象与函数对象二. 构造函数三. 原型对象四. proto五. 构造器六. 原型链七. Prototype总结一. 普通对象与函数对象 JavaScript 中&#xff0c;万物皆对象&#xff01;但对象也是有区别的。分为普通对象和函数对象&#xff0c;Object 、Function 是 JS 自带的函…

jmeter分布式压测原理简介1

1、什么叫分布式压测&#xff1f; 分布式压测&#xff1a;模拟多台机器向目标机器产生压力&#xff0c;模拟几万用户并发访问 2、分布式压测原理&#xff1a;如下 3、更多补充.....待添加 转载于:https://www.cnblogs.com/yoyoblogs/p/11071774.html

十三 re模块

一&#xff1a;什么是正则&#xff1f; 正则就是用一些具有特殊含义的符号组合到一起&#xff08;称为正则表达式&#xff09;来描述字符或者字符串的方法。或者说&#xff1a;正则就是用来描述一类事物的规则。&#xff08;在Python中&#xff09;它内嵌在Python中&#xff0c…

带你玩转 ui 框架 ——scoped及样式穿透问题详解

前言 在我们前端的开发中经常会使用到各种 ui 框架 下面这两个是比较火的&#xff0c;也是我常用的两个ui框架。 问题描述 但是在使用框架的时候难免会遇到需要改变组件中的一些样式&#xff0c;当然如果我们所有页面的组件样式都是统一的话&#xff0c;我们可以进行全局设置…

三分钟带你掌握 CSS3 的新属性

文章目录1. css3简介2. css3边框2.1 边框圆角2.2 边框阴影3. css3背景3.1背景图大小3.2背景图起始点4. css3文本效果4.1 文本阴影4.2 文本换行5. css3字体图标6. css32D转换7. css3 3D转换8. css3 transition8.1 单项改变8.2 单项改多项改变9. css3 动画1. css3简介 CSS 用于控…