您当前的位置: 首页 >  学无止境 >  文章详情

后台生成二进制流,小程序下载文件,下载预览pdf,文档打不开解决方案

时间: 2023-05-16 【学无止境】 阅读量:共1079人围观

简介 后台生成一个二进制流,操作过程中遇到的一些坑,首先是我用网上常规的操作wx.downloadFile,wx.openDocument,开发工具显示正常,真机可能会走到‘打开文档失败’;真机调试发现是 filePath= wx.env.USER_DATA_PATH + '/' + ‘xxx.pdf’,报错没有修改名字的权限

实现代码

wx.request({ url: '后台地址,获取二进制流', method: 'POST', header: { "content-type": "application/json", }, responseType: "arraybuffer", //注意这里的responseType success: (result) => { console.log("下载成功!", result); var fileManager = wx.getFileSystemManager(); var FilePath = wx.env.USER_DATA_PATH + '/' + '文件名字'+'.pdf'; //这里同样可能有问题 我这个打开后显示文档损坏 参考上面的方案解决 fileManager.writeFile({ data: result.data, filePath: FilePath, showMenu: true, // 显示右上角菜单 encoding: "binary", //编码方式 success: res => { console.log('编码格式'); wx.openDocument({ //成功之后直接打开 filePath: FilePath, showMenu:true, fileType: "pdf", // 需要指定文件格式,不然会提示文件无法打开 success: result => { console.log("打开文档成功"); }, fail: err => { console.log("打开文档失败", err); } }); }, fail: res => { wx.showToast({ title: '导出失败!', icon: 'none', duration: 2000, }) console.log(res); } }) }, fail(err) { console.log(err) } })
文章评论
总共 5 条评论
 3阿萨德 : @徐晓 哈哈
2023-05-18 09:50:30 回复
 阿萨德 : @3阿萨德 ad
2023-05-18 09:50:30 回复
 ad : @速度 asdasd
2023-05-18 09:46:22 回复
@速度 不错不错
2023-05-17 20:06:36 回复
@徐晓 可以可以,学到了
2023-05-17 20:04:30 回复
添加新评论
Copyright (C) 2023- 小祥驿站 保留所有权利 蜀ICP备 17034318号-2  公安备案号 50010302004554