谷歌浏览器 文件下载提示网络错误

news/2025/3/5 6:27:09/

在这里插入图片描述

情况描述:

  1. 谷歌版本:129.0.6668.90 (正式版本) (64 位) (cohort: Control)
  2. 其他浏览器,比如火狐没有问题,但是谷歌会下载失败,故推断为谷歌浏览器导致的问题
  3. 小文件比如1、2M会成功,大概10M以上会下载失败
  4. 偶发,有些电脑的谷歌不会,有些会

尝试办法

  • 比如让后端返回流的长度,但是后端给的方案是下载是封装的,不可行
  • 让后端返回下载地址再下载,不过这样会导致存储很多无用文件,不可行
  • 出现问题换个浏览器尝试,会导致用户体验感变差,不可行

解决办法

问题出现的时候一直在排查原因,网上给的资料也比较少,据说是谷歌124之后出现的问题,所以花费了比较长的时间,但是最后将blob换成arraybuffer,成功了,也测试了以下其他浏览器,没有兼容问题,大致解决方法如下:

// api 方法
export function downTraceFile(data?: Object) {return request({url: 'api地址',method: 'post',// 谷歌对blob流有大小显示,使用arraybufferresponseType: 'arraybuffer',data,})
}

下载arraybuffer流:

export function downArraybufferFile(response: any, fileName: string) {// 处理返回的文件流const arraybuffer = response;if (arraybuffer && arraybuffer.size === 0) {useMessage().error('内容为空,无法下载');return;}const link = document.createElement('a');var binaryData = [] as any;binaryData.push(response);link.href = window.URL.createObjectURL(new Blob(binaryData, { type: 'arraybuffer' }));link.download = fileName;document.body.appendChild(link);link.click();window.setTimeout(function () {URL.revokeObjectURL(arraybuffer);document.body.removeChild(link);}, 0);
}

参考文章

https://blog.csdn.net/qq_45599738/article/details/134467853
https://blog.csdn.net/u012190388/article/details/130142638
https://blog.csdn.net/qq_45599738/article/details/134467853
https://blog.csdn.net/weixin_42651102/article/details/107118661


http://www.ppmy.cn/news/1538210.html

相关文章

沉浸式娱乐新纪元,什么是5G+实时云渲染VR大空间解决方案?

近年来,虚拟现实(VR)技术在娱乐、教育、医疗等多个领域展现出巨大的潜力,尤其是VR大空间体验,更是以其沉浸式和互动性的特点,迅速成为市场的新宠。据Statista数据显示,2023年,全球虚…

【花卉识别系统】Python+卷积神经网络算法+人工智能+深度学习+图像识别+算法模型

一、介绍 花朵识别系统。本系统采用Python作为主要编程语言,基于TensorFlow搭建ResNet50卷积神经网络算法模型,并基于前期收集到的5种常见的花朵数据集(向日葵、玫瑰、蒲公英、郁金香、菊花)进行处理后进行模型训练,最…

外包功能测试干了6个月,技术退步太明显了。。。。。

先说一下自己的情况,本科生,23年通过校招进入武汉某软件公司,干了差不多6个月的功能测试,今年中秋,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我就在一个外包企业干了6个月的功…

树莓派应用--AI项目实战篇来啦-9.OpenCV实现汽车检测

1.介绍 该项目使用的汽车检测使用的也是 haar 模型。这是一种基于机器学习的汽车检测算法。它使用了 Haar 特征来检测汽车,可以在图像中快速检测到汽车并输出其位置。采用该方法检测速度较快,但准确率略低。 2.OpenCV 实现汽车检测 可以采用官方自带的汽…

DJN人机交互解决方案

当前,人类社会正处于工业4.0时代。这是一个以智能、网络和定制化为特征的新时代,也是信息时代之后新的科技发展阶段。在工业4.0时代,智能技术贯穿于整个制造领域,生产过程更加自动化和智能化。 触控显示技术是智能化中不可或缺的…

Liunx各系统中间件查询脚本

Centos 6 #!/bin/bashecho "CentOS 6 系统软件信息收集"# 检查操作系统版本 echo "操作系统版本信息:" cat /etc/redhat-release# 检查JDK echo "检查JDK版本..." if command -v java &> /dev/null; thenjava -versionwhich …

特征工程在机器学习中的重要性及实践

文章目录 引言1. 什么是特征工程?2. 特征工程的重要性2.1 提高模型的表现能力2.2 提升模型的泛化能力2.3 减少维度、提高计算效率 3. 特征工程的主要步骤3.1 特征理解3.2 特征处理3.3 特征选择3.4 特征构造 4. 特征工程的常用方法4.1 数据清洗4.2 数据变换4.3 类别编…

Java分布式锁

分布式锁是一种在分布系统环境下,通过多个节点对共享资源进行访问控制的一种同步机制。 主要的目的是防止多个节点同时操作同一份数据,从而避免数据的不一致性。分布式锁的实现比线程锁和进程锁要复杂得多,因为它需要在网诺中的多个节点之间…