当前位置:   article > 正文

小程序之 wx.downloadFile的downloadFile:fail downloadFile protocol must be http or https“ 保存图片失败_wx.downloadfile()失败

wx.downloadfile()失败

因为 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)
	      // 处理上传失败的情况
	    },
	  })
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

保存方法

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,
          })
        }
      },
    })
  },
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/675220
推荐阅读
相关标签
  

闽ICP备14008679号