
如何下载前端生成的 blob 流文件
问题详情:
我们在 uniapp 中纯前端生成了一个 blob 流的 word 文档,但是没有 url。如何在 h5 环境和小程序中下载并打开这个文件?
答案:
解决方案 1:
立即学习“前端免费学习笔记(深入)”;
- 将 blob 对象转换成 base64 编码字符串。
- 如果是小程序环境,则使用 wx.filesystemmanager.writefilesync 将 base64 编码数据写入临时文件中。
- 使用 wx.downloadfile 下载保存的本地临时文件。
- 下载成功后,使用 wx.opendocument 打开文件。
代码示例:
let reader = new FileReader();
reader.readAsDataURL(blob);
reader.onload = function() {
let base64data = reader.result;
};
if (uni.getSystemInfoSync().platform === 'ios') {
// 小程序环境
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('打开文档成功');
}
});
}
}
});
}










