试试看
"wx.saveFileToDisk" (https://link.segmentfault.com/?enc=DEtLPXfZ0ZLY3qLFgWoDAw%3D%3D.XDgJO53sfORocpG4zUoWOML0NZLy29oQ5Ho2C5NtbfwQwxRmywha8B9nn7YDiLbexOleKh8SHJtoqoyzZOHIhNRSH4oNgIsZBVoEpT%2BnzGOjpDoHlHOb5675JeSJVxaS)
这个API?
这里是官方提供的一个Demo 👉 "开发指引 / 对象存储 / 微信小程序 /
下载文件" (https://link.segmentfault.com/?enc=mz5lgghB%2F%2Fm%2BHOCudLIWwQ%3D%3D.FLd5x4ZkFKtztCvcVbL3ltcE2OBAmQosS3qkO0kKdqn%2BQt6qB5WeaZb69gpZ9lbDH7Vg7H3kiDY1SHUpVqkL%2BE8isSqe%2FClmnM%2FIZUd7hT1ruJ%2BD6KQngex2uZP73NWyrrPUo12%2Bbab0Xos5pgr2i32AYUMGz12a9%2FNdT5kXQCe7f4QYTDSu4QwlQmxyLGn%2F)
async onLoad() {
const result = await this.downloadFile('cloud://test.png',function(res){
console.log(`下载进度:${res.progress}%,已下载${res.totalBytesWritten}B,共${res.totalBytesExpectedToWrite}B`)
// if(res.progress > 50){ // 测试文件下载一半就终止下载
// return false
// }
})
wx.saveFile({
tempFilePath: result.tempFilePath
}).then(console.log)
},
/**
* 下载微信云托管对象存储到本地
* @param {*} fileID 对象存储文件ID
* @param {*} onCall 上传回调,文件上传过程监听,返回false时会中断上传
*/
downloadFile(fileID, onCall = () => {}) {
return new Promise((resolve, reject) => {
const task = wx.cloud.downloadFile({
fileID,
success: res => resolve(res),
fail: e => {
const info = e.toString()
if (info.indexOf('abort') != -1) {
reject(new Error('【文件下载失败】中断下载'))
} else {
reject(new Error('【文件下载失败】网络或其他错误'))
}
}
})
task.onProgressUpdate((res) => {
if (onCall(res) == false) {
task.abort()
}
})
})
}
})