前端导出功能实现的两种方式

摘要:
1.单击链接数据和文件格式,将其打包到后台,并返回到带有链接的前端。前端通过两种方式单击链接自动下载它们:1(1)个窗口。地方href='http://t.zoukankan.com/url'2(2)2.解析从后台返回的文件流意味着后台以文件流的形式返回要导出到前端的文件,前端通过blob解析它,然后动态创建标记。1/问题

1.点击链接

数据、文件格式全部在后台封装好,返回给前端一个链接,前端通过点击链接自动下载,两种方式:

1 (1)window.location.href = ‘url’
2 (2)<a href='http://t.zoukankan.com/url' download=''></a>

2.解析后台返回的文件流

这种方式就是后台将要导出的文件以文件流的方式返回给前端,前端通过blob去解析,再动态创建a标签。

 1 // 发请求
 2 this.axios.post(url, {param: paramName}, {responseType: 'arraybuffer'}).then(res => {
 3     let content = res.data; // 文件流
 4     let blob = new Blob([content],{type: 'application/octet-stream'});
 5     let fileName = 'filename.xls';
 6     // 如果后端返回文件名
 7     // let contentDisposition = res.headers['content-disposition'];
 8     // let fileName = decodeURI(contentDisposition.split('=')[1]);
 9         if ('download' in document.createElement('a')) {  // 非IE下载
10         let link = document.createElement('a');
11         link.download = fileName;
12         link.style.display = 'none';
13         link.href = URL.createObjectURL(blob);
14         document.body.appendChild(link);
15         link.click();
16         URL.revokeObjectURL(link.href) ; // 释放URL 对象
17         document.body.removeChild(link);
18     } else {  // IE10+下载
19       navigator.msSaveBlob(blob,fileName);
20     }
21 })

免责声明:文章转载自《前端导出功能实现的两种方式》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Node.js:dgram模块实现UDP通信golang win32编程的一个dll坑下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

http协议简介

  在做接口测试的过程中,都会遇到一些http协议,什么是http协议? 什么是http协议 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。基于TCP的应用层协议,它不关心数据传输的细节,HTTP(超文本传输协议...

CefSharp 浏览器核心,爬虫

CefSharp是什么 A framework for embedding web-browsing-like capabilities to a standard .NET application (WPF or Windows Forms). A set of high-level custom controls to make it reasona...

mysql和Oracle在对clob和blob字段的处理

一、MySQL与Oracle数据库如何处理Clob,Blob数据类型 (1)不通数据库中对应clob,blob的类型如下: MySQL中:clob对应text,blob对应blob DB2/Oracle中:clob对应clob,blob对应blob (2)domain中对应的类型: clob对应String,blob对应byte[] clob对应ja...

Sanic九:Sanic.url_for和静态文件

一、Sanic.url_for,支持的参数也是挺多,但是实际使用过程中,使用url_for一般只用于构建路由 1、使 url_for 生成路由 在Sanic中,可以使使用 url_for 根据终结点来生成路由,这样就不用关心改代码时路由有没有被改,只要函数名没被改就行 使用时要记住的其他事项 url_for : 1.1、传递给的关键字参数 url_f...

[爬虫]采用Go语言爬取天猫商品页面

最近工作中有一个需求,需要爬取天猫商品的信息,整个需求的过程如下: 修改后端广告交易平台的代码,从阿里上传的素材中解析url,该url格式如下: https://handycam.alicdn.com/slideshow/26/7ef5aed1e3c39843e8feac816a436ecf.mp4?content=%7B%22items%22%3A%5B...

HTML5 FileReader

这里将继续介绍一下FileReader,用FileReader具体地读取文件内容。          NOTE: 在chrome浏览器上本地测试的时候,即以file://xxx这种形式测试本文中的demo,会出现FileReader读取不到内容的情况,表现为 FileReader的result为空或者FileReader根本就没有去读取文件内容,FileR...