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

接口返回blob,如何实现小程序下载

小程序中嵌入H5,如何实现文件流的下载

处理接口参数:
const userInfo = LocalCache.getSession("userInfo"); const orgType = LocalCache.getSession("orgType"); const { orgCode, accessToken, appToken } = userInfo || {}; const token = LocalCache.getCache("token"); const origin = window.location.origin; const params = { startTime: data.startTime, endTime: data.endTime, gradeIds: data.gradeIds?.join(",") || "", orgCode: userInfo.orgCode, }; const currentUrl = encodeURIComponent(window.location.href); const paramsObj = `token=${token}&accessToken=${accessToken}&appToken=${appToken} &appKey=${appKey}&orgType=${orgType}`;

currentUrl 是下载之后需要返回的页面url

paramsObj 是接口请求头的参数,如鉴权需要的参数

处理下载接口需要用到的参数
const query = new URLSearchParams({ startTime: params.startTime, endTime: params.endTime, gradeIds: params.gradeIds, orgCode: params.orgCode, token, accessToken, appToken, appKey, orgType, source: orgType === "11" ? "pre" : "general", }); const url = `${origin}/xgk/opengateway/preschool/api/v1/interaction/export/sta?${query.toString()}`;

url 是下载接口的路径,将参数拼接到后面

转码处理

如果url太长需要进行编码处理,fileName、currentUrl等参数过场也需要编码处理

const fileUrl = encodeURIComponent(url); let allUrl = `/modules/fileCode/pages/handleFile/index?isDownload=1&fileName=班级统计表.xlsx&currentUrl=${currentUrl}&fileUrl=${fileUrl}`; console.log("allUrl", allUrl); wx.miniProgram.navigateTo({ url: allUrl, });

/modules/fileCode/pages/handleFile/index 此处为固定路径,后面的参数根据下载文件的内容进行修改

项目里面引入微信api
import wx from "weixin-js-sdk";
http://www.jsqmd.com/news/658347/

相关文章:

  • 告别Batch Size焦虑:用PyTorch手把手实现Group Normalization(附完整代码)
  • 如何获取并定制化订货系统源码以适应企业需求?
  • Java转大模型,8个月上岸
  • HPH构造一看就懂!核心部件和工作原理
  • 2026国产适合企业的Ai智能体平台选型推荐:架构师视角下的非侵入式集成与提效避坑指南
  • 一份就懂的PyOpenGL实战指南,从零到一构建3D小游戏!
  • ESP32编译固件内存信息解读
  • **剪枝模型实战:用Python实现轻量化神经网络优化,从理论到代码全解析**
  • OpenClaw为何疯狂“吃”Token?
  • 有赞对接金蝶云星空全链路技术解决方案
  • ceph的monitor集群和osd集群
  • Siemens 6DS1311-8AE 总线驱动
  • 鱼眼双目测距实战:从OpenCV标定到SGBM匹配的完整流程解析
  • Vue 3 技术演进全景
  • 你的游戏本性能被锁定了吗?解锁秘籍来了!
  • 地图开发避坑指南:手把手教你合法合规地使用第三方瓦片服务(高德/百度/腾讯)
  • 5款常用的漏洞扫描工具,网安人员不能错过!
  • 从理论到实践:基于MATLAB的TCPA与DCPA算法实现与避碰应用
  • 从RNN到Transformer:为什么相对位置编码对长文本任务(如翻译、摘要)更友好?
  • 智能代码生成数据构建实战手册(含GPT-4o/CodeLlama双基准验证数据集)
  • 从游戏地图到无人驾驶:Opendrive格式如何成为高精地图的“通用语言”?
  • M12连接器的工作原理:如何在极端环境下保证信号零丢失
  • 保姆级教程:用RV1126开发板+EASY-EAI-Toolkit,30分钟搞定一个RTSP网络摄像头
  • 终极GIMP批量图像处理插件BIMP完全指南:免费自动化解决方案
  • Siemens 6DS1206-8AA电气定位器
  • 【GitHub Star破8k的StyleGuard工具】:用1行配置拦截78%的AI生成风格违规,开发者正在抢测Beta版
  • 抖频技术对传导EMI抑制效果的影响研究综述
  • SpringBoot 实战必备:AOP + ThreadLocal 核心知识点(附实战代码)
  • 深度解析MIST显微图像拼接工具:从原理到实战的高效拼接方案
  • 保姆级教程:用Android Studio和Socket实现手机传感器数据实时传输到电脑(附完整代码)