使用uni内置方法下载预览
1.问题:但是内置方法一般使用的是url预览,如果接口返回的是文件流,前端如何处理
uni.downloadFile
文章来源:https://www.toymoban.com/news/detail-516866.html
uni.openDocument
文章来源地址https://www.toymoban.com/news/detail-516866.html
2.解决:后端接口路径拼接,如果使用的是PC端下载文件的接口,但接口返回的是文件流,可以将地址进行拼接,放到uni.downloadFile中的url中
const url = `https://xxx.com/api/file/pdf?fileToken=${fileToken}`;
uni.downloadFile({
url,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
success: (res) => {
const filePath = res.tempFilePath;
uni.openDocument({
filePath: filePath,
showMenu: true,
success: function (res) {
console.log('打开文档成功');
}
});
},
fail: err => {
console.log(url);
console.log('读取失败');
}
});
3.tip:网上的其他办法,比如使用Blob方法转换文件流的皆不可采用, new Blob及window.URL.createObjectURL都是适用于js对象,小程序不生效,如果上述方法不生效,需要前后端配合,或是将文件流返回的格式改为url返回,直接使用内置方法下载返回的url,预览即可。
到了这里,关于uniapp —— 微信小程序预览文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!