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

二进制流文件下载和预览

背景:后端接口,返回二进制文件流

小程序预览文件

//file 文件流,filename 文件名let { file, filename } = this.data;const fs = wx.getFileSystemManager(); //获取全局唯一的文件管理器fs.writeFile({// 写文件filePath: wx.env.USER_DATA_PATH + "/" + filename, // wx.env.USER_DATA_PATH 指定临时文件存入的路径,后面字符串自定义data: file,encoding: "binary", //二进制流文件必须是 binarysuccess(res) {wx.openDocument({// 新开页面打开文档filePath: wx.env.USER_DATA_PATH + "/" + filename, //拿上面存入的文件路径showMenu: true, // 是否显示右上角菜单(提供下载到手机文件夹、分享等功能)success: function (res) {setTimeout(() => {wx.hideLoading();}, 500);},});},});

H5 下载二进制流文件,预览pdf可以浏览器直接打开

 // 将二进制流转为bloblet { file, filename } = this.data;const blob = new Blob([file], {type: "application/octet-stream",});if (typeof window.navigator.msSaveBlob !== "undefined") {// 兼容IE,window.navigator.msSaveBlob:以本地方式保存文件window.navigator.msSaveBlob(blob, decodeURI(filename));} else {// 创建新的URL并指向File对象或者Blob对象的地址const blobURL = window.URL.createObjectURL(blob);// 创建a标签,用于跳转至下载链接const tempLink = document.createElement("a");tempLink.style.display = "none";tempLink.href = blobURL;tempLink.setAttribute("download", decodeURI(filename));// 兼容:某些浏览器不支持HTML5的download属性if (typeof tempLink.download === "undefined") {tempLink.setAttribute("target", "_blank");}// 挂载a标签document.body.appendChild(tempLink);tempLink.click();document.body.removeChild(tempLink);// 释放blob URL地址window.URL.revokeObjectURL(blobURL);}

http://www.mrgr.cn/news/67274.html

相关文章:

  • virtualBox部署minikube+istio
  • 【综合算法学习】(第二十篇)
  • Darknet 连接教程
  • 【机器学习】k最近邻分类
  • CSS基础学习篇——选择器
  • 2024-11-05 问AI: [AI面试题] 人工智能开发和部署的道德考虑是什么?
  • SpringBoot3集成Junit5
  • C++ 多态
  • 写歌词的技巧和方法:以情动人,打造感人歌词,妙笔生词AI智能写歌词软件
  • Jest项目实战(2): 项目开发与测试
  • 详解:字符串常量池
  • Linux入门之vim
  • Git超详细笔记包含IDEA整合操作
  • 狐假虎威,数据流图其实很简单
  • 题目练习之二叉树那些事儿
  • Centos7修改默认yum源(ARM架构)(2024年6月30号后)
  • 防火墙|WAF|漏洞|网络安全
  • 信息学奥赛一本通 1395:烦人的幻灯片(slides)
  • Flutter鸿蒙next 中的 Drawer 导航栏
  • 【360】基于springboot的志愿服务管理系统
  • 粒子群优化双向深度学习!PSO-BiTCN-BiGRU-Attention多输入单输出回归预测
  • 【云岚到家】-day09-2-秒杀抢购
  • 为什么我的软件内存占用这么高?从内存占用过高到C++内存管理方法
  • 【数据结构】插入排序——直接插入排序 和 希尔排序
  • 操作系统——作业、进程调度算法
  • 初识多线程