前端導出文件,后端返回文件流過大直接干崩潰

前端導出文件

  • 前端很常見的導出需求 導出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.pswp.cn/news/248704.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/248704.shtml
英文地址,請注明出處:http://en.pswp.cn/news/248704.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

在eclipse中創建第一個java應用程序,并在控制臺輸出“hello world”。

package com.fs.test;public class HelloWorld {public void aMethod() {}public static void main(String[] args) {System.out.print("Hello world");}}轉載于:https://www.cnblogs.com/ooo888ooo/p/11042700.html

R-CNN , Fast R-CNN , Faster R-CNN原理及區別

github博客傳送門csdn博客傳送門 RCNN 1、生成候選區域 使用Selective Search&#xff08;選擇性搜索&#xff09;方法對一張圖像生成約2000-3000個候選區域&#xff0c;基本思路如下&#xff1a; &#xff08;1&#xff09;使用一種過分割手段&#xff0c;將圖像分割成小區域 …

Vue和iview-admin搭建的項目進行兼容

寫在前面&#xff1a; 用iview-admin創建的基于Vue的項目&#xff0c;開發完成后&#xff0c;用戶是使用的360瀏覽器&#xff0c;其中有兩個模式&#xff0c;一個是極速模式&#xff08;谷歌內核&#xff09;&#xff0c;一個是兼容模式&#xff08;IE內核&#xff09;&#x…

App過大

最近開發中遇到一個報錯信息 如下 Error:Cannot fit requested classes in a single dex file.Try supplying a main-dex list. # methods: 72477 > 65536 大致意思是Android App中的方法數超過65535時&#xff0c;如果往下兼容到低版本設備時&#xff0c;就會報編譯錯誤 主…

第三課《讓簡歷有點色彩》

一、學習了css 的概念、工作方式、語法 CSS (Cascading Style Sheets) &#xff1a;是一種用于向用戶指定文檔如何呈現的語言 — 它們如何被指定樣式、布局等工作方式&#xff1a; 瀏覽器將 HTML 和 CSS 轉化成 DOM &#xff08;文檔對象模型&#xff09;。DOM在計算機內存中表…

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;純手工打造

使用CEfSharp之旅(8)CEFSharp 使用代理 更換位置IP

直接上代碼&#xff1a; var settings new CefSettings(); settings.CachePath "cache"; settings.CefCommandLineArgs.Add("proxy-server", ProxyAddress); Cef.Initialize(settings);出處&#xff1a;https://blog.csdn.net/u010919083/article/detail…

新入駐博客園立一個flag

2019年博客12 * 2篇轉載于:https://www.cnblogs.com/chenzy87/p/10233209.html

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…

騰訊地圖調用獲取經度緯度代碼

騰訊地圖調用獲取經度緯度代碼 //騰訊地圖拼接好的數據返回經度和緯度 function getPositionInfo($address) { header("Content-type:text/html;charsetutf-8");//你騰訊地圖的k值$ak KDSDS-47CDS-G3NU5-DB3TB-21212-5UBD7;$url "http://apis.map.qq.c…

安裝一個插件、回饋給你一款屬于猿的絢麗瀏覽器

不知道大家有沒有了解&#xff0c;由CSDN推出的一款CSDN瀏覽器助手&#xff0c;其實哈就我個人而言對一些助手、插件還是很有興趣的&#xff0c;畢竟他能夠讓我們快速高效的去完成我們的操作。但是一直沒有找到一款稱心如意的&#xff0c;知道遇見了這款CSDN瀏覽器助手讓我愛不…

Python-DDT框架

Install pip install ddt 實例 import unittest from ddt import ddt, data, unpackddt class MyTestCase(unittest.TestCase):data((2, 4), (6, 8))# unpack 說明測試用例有多個參數unpackdef test1(self,value1,value2):self.assertEqual(value2,value12)if __name__ __main…

IT知識庫

http://www.it1352.com http://www.itdaan.com/ 轉載于:https://www.cnblogs.com/gcgc/p/10233732.html

《看完它面試必solo | 尋找C站寶藏》

今天給大家摟點干貨&#xff0c;2020 年 9 月 18 日晚 11 點半發布了 Vue 3.0 版本。到目前已經很多公司開始鼓勵大家去學習Vue3了&#xff0c;在這里小編就把自己所了解到的‘皮毛’貢獻給大家 Vue3.0 的突出亮點 Performance&#xff1a;性能比Vue2快1.2~2倍Tree shaking s…