问题:
使用wx.downloadFile下载网络资源文件(mp4),下载成功,到保存到相册,wx.saveVideoToPhotosAlbum,回调失败,返回: fail invalid video
ios 小程序真机报错,微信调试工具没有问题
解决:
downFile2(obj) {
let api = wx.saveVideoToPhotosAlbum
if (obj.file_type.match(/^image\/*/)) {
api = wx.saveImageToPhotosAlbum
}
const filePath = wx.env.USER_DATA_PATH + '/' + obj.name
wx.downloadFile({
url: obj.original_url, // 下载资源的 url
filePath: filePath,
success(res) {
// const filePath = res.tempFilePath
api({
filePath: filePath,
success: function(res2) {
if (res.statusCode === 200) {
wx.showToast({
icon: 'none',
title: '文件已保存到相册'
})
}
},
fail: function(res2) {
console.log('保存到本地相册-失败', res2)
},
complete: function(res2) {
console.log('保存到本地相册-请求complete', res2)
}
})
}
})
}
如下图可知
8F97B767-6599-432e-A879-7FE43BB386D7.png
wx.downloadFile参数中 filePath字段,为非必传字段,指定了下载后存储的路径,若未传,会生成一个临时路径tempFilePath
1.png C3FAD118-CB50-480a-9C58-4E84676E3D46.pngwx.saveImageToPhotosAlbum 中要传的filePath,为要保存的路径,刚开始使用了 wx.downloadFile成功回调后返回的 tempFilePath临时路径,保存图片没有问题,保存视频会报 fail invalid video 的错误,所以,直接使用固定路径,可成功保存
wx.downloadFile微信官方文档
wx.saveVideoToPhotosAlbum微信官方文档
wx.saveImageToPhotosAlbum微信官方文档
网友评论