微信小程序保存图片到本地相册
处理微信小程序保存图片到本地相册
1.保存图片到本地(base64)
/** * 保存图片到本地(base64) * @param {String} imgData base64类型图片 * @param {String} imgName 保存图片名称 * @return {Promise} callback 回调 */ const wxSaveImage = (imgData, imgName, callback) => { //获取文件管理器对象 const fs = wx.getFileSystemManager(); let imageName = imgName ? imgName : '/wx' + new Date().getTime(); //图片名称 const Imgpath = wx.env.USER_DATA_PATH + imageName + '.png'; //文件保存路径 let imageSrc = null; if (imgData) { imageSrc = imgData.replace(/^data:image\/\w+;base64,/, ''); //处理base64图片文件,把'/'过滤掉 } //写入本地文件 fs.writeFile({ filePath: Imgpath, data: imageSrc, encoding: 'base64', success(res) { // console.log(res) //保存到手机相册 wx.saveImageToPhotosAlbum({ filePath: Imgpath, success(res) { // console.log(res) if (callback) { callback(res); } else { getToast('保存成功'); } }, fail: function (err) { console.log(err) if (callback) { callback(err); } else { getToast('保存失败'); } } }) } }) }
2.保存图片链接(jpg,jpeg,png等),接口图片(https://dc.aadv.net:10443/fsServerUrl/fs/download/F00AgKdVBvCR1TJyBTV1k1T)等
/** * 保存图片到本地(png,jpg等) * @param {String} imgUrl 图片 * @param {String} imgName 保存图片名称 * @return {Promise} callback 回调 */ const onSaveImage = (imgUrl, imgName, callback) => { //获取文件管理器对象 let imageName = imgName ? imgName : '/wx' + getFormatDate().oYmdHms; //图片名称 const Imgpath = wx.env.USER_DATA_PATH + imageName + '.png'; //文件保存路径 // console.log(Imgpath) //写入本地文件 wx.downloadFile({ url: imgUrl, filePath: Imgpath, success(res) { // console.log(res) var opt = { scope: 'scope.writePhotosAlbum', content: '需要您授权保存相册' } app.getSettingRecord(opt).then((data) => { //保存到手机相册 wx.saveImageToPhotosAlbum({ filePath: Imgpath, success(res) { // console.log(res) if (callback) { callback(res); } else { getToast('保存成功'); } }, fail: function (err) { console.log(err) if (callback) { callback(err); } else { getToast('保存失败'); } } }) }) } }) }