当前位置: 首页 > news >正文

【文件下载】接口传递文件成功和失败时,前端的处理方式

问题

使用bold类型从后端接口获取文件流,获取成功的时候通过a标签下载;失败的时候,后端返回的是json,这个时候就无法向用户展示后端返回的错误提示信息。

思路

根据返回类型是否为 application/json 区分是否返回成功,若失败,将blob格式转换为json格式。

代码

    this.$http.post('/file/export', { exportType: 'xlsx' }, { responseType: 'blob' }).then(res => {if (res.data.type == 'application/json') {const reader = new FileReader()reader.readAsText(res.data, 'utf-8')reader.onload = () => {const result = JSON.parse(reader.result)this.$message.error(result.message)}} else if (res.data.type == 'application/octet-stream') {const downloadUrl = window.URL.createObjectURL(new Blob([res.data]))const link = document.createElement('a')link.href = downloadUrldocument.body.appendChild(link)link.click()} else {this.$message.error('导出文件类型错误!')}}).catch(error => {this.$message.error('导出文件失败!')})

http://www.lryc.cn/news/497187.html

相关文章:

  • html+css网页设计马林旅行社移动端4个页面
  • 视频 的 音频通道提取 以及 视频转URL 的在线工具!
  • 容易被遗忘的测试用例
  • uni-app写的微信小程序如何实现账号密码登录后获取token,并且每天的第一次登录后都会直接获取参数而不是耀重新登录(2)
  • 统计中间件稳定性指标
  • 移动端使用REM插件postcss之postcss-px2rem
  • FPGA Xilinx维特比译码器实现卷积码译码
  • hive 行转列
  • Vue中使用ECharts图表中的阈值标记(附源码)
  • 【特征融合】融合空间域和频率域提升边缘检测能力
  • 深入理解AVL树:结构、旋转及C++实现
  • AUTOSAR AP 汽车API知识点总结(Automotive API )R24-11
  • 【HarmonyOS开发】超详细的ArkTS入门
  • Springboot(五十一)SpringBoot3整合Sentinel-nacos持久化策略
  • [go-redis]客户端的创建与配置说明
  • Qt入门7——Qt事件
  • CTF之密码学(仓颉编码)
  • 面向人工智能安全的多维应对策略
  • 考研英语翻译与大小作文
  • 视频监控汇聚平台Liveweb视频安防监控实时视频监控系统操作方案
  • 算法第一弹-----双指针
  • linux环境GitLab服务部署安装及使用
  • MotorCAD:定子绕组中的趋肤效应和邻近效应损耗
  • R语言机器学习论文(二):数据准备
  • FFmpeg:强大的音视频处理工具指南
  • NiFi-从部署到开发(图文详解)
  • Scala的条件匹配
  • 如何手搓一个智能激光逗猫棒
  • leetcode LCP 开幕式焰火
  • 使用GDI对象绘制UI时需要注意的若干细节问题总结