请问uniapp里, 纯靠前端生成的blob流, 如何下载?
这个blob流不是调用后端接口返回的, 所以没有url。是纯靠前端生成的一个blob流的word文档。想问一下该如何下载到手机并打开?H5环境和小程序。如果创建a标签下载, 跑到小程序里就不生效了。
回复
1个回答

test
2024-06-20
把Blob对象转换成Base64编码字符串
let reader = new FileReader();
reader.readAsDataURL(blob);
reader.onload = function() {
let base64data = reader.result;
};
判断是小程序环境,使用wx.fileSystemManager.writeFileSync把Base64编码数据写入临时文件中,然后使用wx.downloadFile下载保存的本地临时文件,下载成功后使用wx.openDocument打开文件
wx.fileSystemManager.writeFileSync(wx.env.USER_DATA_PATH + '/tempFile.txt', base64data.split(',')[1], 'base64');
wx.downloadFile({
url: wx.env.USER_DATA_PATH + '/tempFile.txt',
success: function(res) {
if (res.statusCode === 200) {
wx.openDocument({
filePath: res.tempFilePath,
success: function(res) {
console.log('打开文档成功');
}
});
}
}
});
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容