js实现下载(文件流式)方法详解与完整实例源码

 更新时间:2022年12月10日 08:51:29   作者:阿晏_  
这篇文章主要介绍了js实现下载(文件流式)的方法,需要的朋友可以参考下

在介绍JS文件流式下载文件方法之前,先记录下window.location.href的使用方法

window.location.href的用法

javascript中的location.href有很多种用法,主要如下。

self.location.href="/url"//当前页面打开URL页面
location.href="/url"//当前页面打开URL页面
windows.location.href="/url" //当前页面打开URL页面,前面三个用法相同。
this.location.href="/url" //当前页面打开URL页面
parent.location.href="/url" // 在父页面打开新页面
top.location.href="/url" //在顶层页面打开新页面

如果页面中自定义了frame,那么可将parent self top换为自定义frame的名称,效果是在frame窗口打开url地址

此外,window.location.href=window.location.href;window.location.Reload()和都是刷新当前页面。区别在于是否有提交数据。

当有提交数据时,window.location.Reload()会提示是否提交,window.location.href=window.location.href;则是向指定的url提交数据

JS文件流式下载文件源码实例

下面是使用axios写的一个完整JS文件流式下载文件的完整源码

const apiurl = '' // 接口地址
this.exportLoading = true
axios.post(apiurl, params, {
   'responseType': 'blob'  //设置响应的数据类型为一个包含二进制数据的 Blob 对象,必须设置!!!
}).then( (response) =>{
    console.log('response', response, response.data.size)
    this.exportLoading = false
    if(response.data){
        if(response.data.size < 1000){
        	// 根据文件流的大小判断异常情况
            if(response.data.size == 63){
                this.$message.warning('查无结果');
                return
            }
            if(response.data.size == 84){
                this.$message.warning('导出数据超出最大限制值');
                return
            }
        }else{
            const blob = new Blob([response.data],{type: 'application/vnd.ms-excel'})
            const linkNode = document.createElement('a');
            linkNode.style.display = 'none';
            linkNode.href = URL.createObjectURL(blob); //生成一个Blob URL
            document.body.appendChild(linkNode);
            linkNode.click();  //模拟在按钮上的一次鼠标单击
            URL.revokeObjectURL(linkNode.href); // 释放URL 对象
            document.body.removeChild(linkNode);
        }
    }
}).catch( (error) =>{
    console.log(error);
    this.exportLoading = false
});

相关文章

  • 手机安装GreasyFork油猴js脚本的教程

    手机安装GreasyFork油猴js脚本的教程

    Iceraven浏览器需要安装Tampermonkey插件来安装GF油猴脚本,本文给大家介绍手机安装GreasyFork油猴js脚本的教程,安装过程给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-12-12
  • JS设置随机出现2个数字的实例代码

    JS设置随机出现2个数字的实例代码

    这篇文章给大家分享基于js设置随机出现2个数字的实例代码,在文章下面给分享js产生随机数的几个用法介绍,感兴趣的朋友一起看看吧
    2017-07-07
  • JavaScript编写简单的计算器

    JavaScript编写简单的计算器

    这篇文章主要介绍了JavaScript如何编写简单的计算器,功能很简单,可以实现加减乘除功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-11-11
  • js计算文本框输入的字符数

    js计算文本框输入的字符数

    这篇文章主要介绍了js计算文本框输入的字符数,具有一定的参考价值,感兴趣的朋友可以参考一下
    2015-10-10
  • js实现带缓冲效果的仿QQ面板折叠菜单代码

    js实现带缓冲效果的仿QQ面板折叠菜单代码

    这篇文章主要介绍了js实现带缓冲效果的仿QQ面板折叠菜单代码,通过JavaScript定时函数递归调用实现折叠菜单的缓冲效果,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • JS代码屏蔽F12,右键,粘贴,复制,剪切,选中,操作实例

    JS代码屏蔽F12,右键,粘贴,复制,剪切,选中,操作实例

    在本篇文章里小编给大家分享的是关于利用JS代码屏蔽F12,右键,粘贴,复制,剪切,选中,操作,需要的朋友们学习下。
    2019-09-09
  • 再谈Javascript中的异步以及如何异步

    再谈Javascript中的异步以及如何异步

    大家都知道js是单线程的,执行起来是顺序的,在顺序的业务逻辑中当然没有问题,如果遇到可以并发执行的业务逻辑,再排队就很低级了!所以这里我们再来简单的谈谈JS中的异步以及如何异步。
    2016-08-08
  • JavaScript与Div对层定位和移动获得坐标的实现代码

    JavaScript与Div对层定位和移动获得坐标的实现代码

    JavaScript与Div对层定位和移动获得坐标的实现代码,需要的朋友可以参考下。
    2010-09-09
  • uniapp uni-swipe-action 滑动操作状态恢复功能实现

    uniapp uni-swipe-action 滑动操作状态恢复功能实现

    按照uni-app官方文档的写法,当前一条滑动确认之后页面列表刷新但是滑动的状态还在,我们需要在滑动确认之后 页面刷新 滑动状态恢复,下面小编给大家分享uniapp uni-swipe-action 滑动操作状态恢复功能实现,感兴趣的朋友跟随小编一起看看吧
    2024-06-06
  • JS保留两位小数 四舍五入函数的小例子

    JS保留两位小数 四舍五入函数的小例子

    这篇文章主要介绍了JS保留两位小数 四舍五入函数的小例子,有需要的朋友可以参考一下
    2013-11-11

最新评论