微信小程序保存图片
如果图片是网络路径,⚠️微信官方文档中wx.saveImageToPhotosAlbum不支持
wx.saveImageToPhotosAlbum 微信官方文档 传送门🚪🚪🚪
怎么解决图片是网络路径呢?
微信官方文档也提供了一个 wx.downloadFile
在success回调函数中可以拿到转换后的临时文件路径tempFilePath,接下来就可以使用api来保存图片,代码如下:
function downloadFile(imgSrc = '') {
//下载单张图片
return new Promise((resolve, reject) => {
wx.downloadFile({
url: imgSrc,
success: (res) => {
resolve(res)
},
fail: (err) => {
reject(err)
}
})
})
}
let imgUrl = this.data.DetailInfo.imgurl
//这里的imgUrl是接口获取返回的网络路径图片
this.downloadFile(imgUrl).then(downres=>{
wx.saveImageToPhotosAlbum({
filePath: downres.tempFilePath,//此时filePath已经通过api转化成为本地临时路径
success(res) {
wx.showToast({
title: '保存成功',
icon: 'none',
duration: 2000
})
},
fail(err) {
wx.showToast({
title: '保存失败',
icon: 'none'
})
}
})
})
查看pdf文件
let pdfurl = this.data.invoiceInfo.pdfurl
// 这里的pdfurl是接口获取返回的网络路径
const randFile = new Date().getTime() + '.pdf' // 设置本地存储的地址
wx.downloadFile({
url: pdfurl,
// 使用自定义目录(文件路径)进行下载/保存
filePath: `${wx.env.USER_DATA_PATH}/${randFile}`,
success(res) {
wx.openDocument({
// 注意 : 文件地址是 filePath
filePath: res.filePath,
showMenu: true,
fileType: 'pdf',
success() {
console.log("打开文档成功")
}
})
}
})
如有遗漏,欢迎留言,fighting!