从后端返回的数据种获取base64段码
后端有两种返回的方法
(1)返回base64文件流,这个时候需要我们手动转码
(2)返回服务器文件的本地地址
拼接本地文件路径
let filePath = wx.env.USER_DATA_PATH + '/' + this.data.ObjName + '.pdf';
此处的ObjName变量为项目名称,可忽略不计,此操作只是生成一个本地文件路径
将后端传过来的base64文件流进行解码,wx.base64ToArrayBuffer()方法虽然已经停止维护了,但还是可用的
let path = wx.base64ToArrayBuffer(this.data.FileStream)
调用wx.getFileSystemManager().writeFile()方法
此方法中传入一个配置对象如下:
wx.getFileSystemManager().writeFile({
filePath: filePath,//保存的本地路径
data: path,//解码后的base64文件流
encoding: 'binary', // 指定二进制格式
success: res => {
// 回调成功后调用打开文件方法
wx.openDocument({
filePath: filePath,//打开预览的文件路径
fileType: 'pdf', //指定为pdf文件
showMenu: true, //true 可以右上角转发和分享
fail: function (res) {
wx.toastManager.showShortToast('文件打开失败', res);
wx.hideLoading()
}
})
},
fail: res => {
Toast.fail('生成失败,请重试');
}
});
完结