码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • vue实现blob文档流下载文件


    后端接口返回:

    .zip文件,图片等

    .json,.txt文件下载的数据格式:

    VUE页面使用

    1. async downloadFile(fileId: string, fileName: string) {
    2. try {
    3. const res = await API.Defect.downloadDefectFile({
    4. fileId: fileId,
    5. fileName: fileName
    6. })
    7. if (res.data) {
    8. downloadFetchFiles(res)
    9. }
    10. } catch (error) {
    11. warn(error, true)
    12. }
    13. },

    downloadFetchFiles方法代码:

    1. export function downloadFetchFiles(res: { data: BlobPart; fileName: string }) {
    2. const blob = new Blob([res.data])
    3. const src = URL.createObjectURL(blob)
    4. if (src && 'download' in document.createElement('a')) {
    5. const elink = document.createElement('a')
    6. elink.download = `${decodeURI(res.fileName)}`
    7. elink.href = src
    8. elink.click()
    9. } else {
    10. warn('您的浏览器不支持下载功能', true)
    11. }
    12. }

    这个方法也是常用的文件流下载方式,.txt, .json文件下载后都正常,但是图片,压缩包下载后打不开,后来发现:

    注意:在这里需要特别注意的是不管接口是get还是post请求,在请求时需要多加一个参数 responseType:'blob' ,否则等等下载的文件会出现乱码或者下载后打不开文件的问题;

    封装接口处添加

    1. /**
    2. * 下载文件
    3. */
    4. export function downloadDefectFile(params: { fileId: string; fileName: string }) {
    5. return request.get(`/yh/download/downloadForStream?fileId=${params.fileId}&fileName=${params.fileName}`, { responseType: 'blob' })
    6. }

    中午跑通了。

  • 相关阅读:
    【C++ STL】-- deque与vector相比的优势与劣势
    centos7中MySQL的卸载
    vue+express、gitee pm2部署轻量服务器(20230923)
    无人机飞手教员组装、调试高级教学详解
    (1)docker的使用 阿里镜像 运行jar包 springboot
    空气阻力对乒乓球运动轨迹的影响
    110道 MySQL面试题及答案 (持续更新)
    YOLOv8-Seg推理详解及部署实现
    Android不带电池设备文件系统配置
    CAD渲染如何选择合适的电脑配置?
  • 原文地址:https://blog.csdn.net/weixin_44834981/article/details/137962839
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号