赞
踩
因为 uni.downloadFile 地址必须是http or https
wxfile://tmp_51ab15009cb231f65e4550c81bcbe2af5ae44ea36dc7b040.jpg 临时路径
开发者工具上chooseImage 获取到的图片路径是 http://tem
但是真机上获取到的路径不是 http://tem 类型的,而是 wxfile://tmp
真机上报错 request:fail invalid url "wxfile://tmp
真机调试失败,电脑上是可以的能下载并打开
解决办法
需要把这个文件上传到自己服务器或者第三方服务器。 因为这个临时路径随时失效的。
wx.uploadFile
uni.uploadFile({ url: 'https://app.cn/api/common/uploadFile', // 上传的服务器地址 filePath: res, // 临时文件路径 name: 'file', // 上传文件的字段名 success: function (res) { this.upLoadImgUrl = JSON.parse(res.data).data.fileUrl 返回服务器的该图片地址 console.log(this.upLoadImgUrl, 'upImgUrl---------------') console.log(this.upLoadImgUrl,'this.upLoadImgUrl'); that.$tools.downSaveImage(this.upLoadImgUrl) 再调用 uni.downloadFile }, fail: function (error) { console.log(error) // 处理上传失败的情况 }, })
保存方法
downSaveImage(imgurl) { console.log(imgurl, 'upImgUrl===========') uni.showModal({ title: '保存图片', content: '是否保存当前图片?', success: (res) => { if (res.confirm) { //获取用户授权 uni.getSetting({ success(res) { if (res.authSetting['scope.writePhotosAlbum']) { // 已授权,直接保存图片 uni.downloadFile({ // url: this.upImgUrl, url: imgurl, success: (res) => { if (res.statusCode === 200) { uni.saveImageToPhotosAlbum({ filePath: res.tempFilePath, success: function () { uni.showToast({ title: '保存成功', duration: 2000, }) }, fail: function () { uni.showToast({ title: '保存失败,请稍后重试', icon: 'none', }) }, }) } }, }) } else if (res.authSetting['scope.writePhotosAlbum'] === false) { // 用户已拒绝授权,提示用户授权 uni.showModal({ title: '提示', content: '您未授权保存图片到相册,是否前往设置页面进行授权?', success: function (res) { if (res.confirm) { uni.openSetting({ success: function (res) { if (res.authSetting['scope.writePhotosAlbum']) { uni.downloadFile({ url: imgurl, success: (res) => { if (res.statusCode === 200) { uni.saveImageToPhotosAlbum({ filePath: res.tempFilePath, success: function () { uni.showToast({ title: '保存成功', duration: 2000, }) }, fail: function () { uni.showToast({ title: '保存失败,请稍后重试', icon: 'none', }) }, }) } }, }) } }, }) } else if (res.cancel) { uni.showToast({ title: '您取消了授权', icon: 'none', duration: 2000, }) } }, }) } else { // 用户第一次调用,调用授权接口 uni.authorize({ scope: 'scope.writePhotosAlbum', success() { uni.downloadFile({ url: imgurl, success: (res) => { if (res.statusCode === 200) { uni.saveImageToPhotosAlbum({ filePath: res.tempFilePath, success: function () { uni.showToast({ title: '保存成功', duration: 2000, }) }, fail: function () { uni.showToast({ title: '保存失败,请稍后重试', icon: 'none', }) }, }) } }, }) }, fail() { uni.showToast({ title: '授权失败,请稍后重试', icon: 'none', duration: 2000, }) }, }) } }, }) } else if (res.cancel) { uni.showToast({ title: '你取消了该操作', icon: 'none', duration: 2000, }) } }, }) },
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。