• Day8-微信小程序实战-交友小程序-头像的设置


    一、功能分析:

          1、也是要有两个按钮(和修改昵称类似)就是可以选择用微信的头像,也可以自定义头像(直接copy name.wxml中的代码即可)

          2、下面就不再是文本框了,而是一个image标签,并且还要实现上传图片的功能

    二实现:

        2、这个上传的功能,微信小程序已经帮我们封装好的了 微信开放文档-》chooseImage -》示例代码  (从本地相册选择图片或使用相机拍照)

    ==一般这种API都是可以回调的比如success 或者是用promise中的then和catch,基本上都是这样的一个套路了

    wx.chooseImage({
      count: 1,
      sizeType: ['original', 'compressed'],
      sourceType: ['album', 'camera'],
      success (res) {
        // tempFilePath可以作为img标签的src属性显示图片
        const tempFilePaths = res.tempFilePaths
      }
    })

    但是在这里我们成功回调的函数不适用success还是用promise的then的,这时候一般不太清楚回调的东西的时候,都是直接在then里面吧res打印出来的

     即可定位到我们想要的数据上面了

    handleUploadImage(){
        wx.chooseImage({
          // 这个count表示的是用户可以同时选择多少张图片
          count: 1,
          // 这个type就是可以选择其中一个的,我们选择了压缩图片类型
          sizeType: ['compressed'],
          // 这里表示的就是从相册中招还是直接拍照
          sourceType: ['album', 'camera'],
          // success(res) {
          //   // tempFilePath可以作为img标签的src属性显示图片
          //   const tempFilePaths = res.tempFilePaths
          // }
        }).then((res)=>{
          // console.log(res)
          const tempFilePaths = res.tempFilePaths[0];
          this.setData({
            userPhoto: tempFilePaths
          })
        });
      }
    

      通过这个方法就可以把本地的照片搞到小程序中的,但是这并不意味着我们已经把照片上传到数据库中的了

    就是要在点击“自定义头像”的时候把图片上传到云端,就用到了那个“自定义图片”按钮的触发函数handleBtn了

    ===这种上传头像的操作,其实在数据库中是一个存储的操作了

    涉及到【如何进行云存储和云上传文件】

    查看 微信开发文档 -》云开发-》存储->wx.cloud.uploadFile即可(注意招这个上传文件的接口要招小程序端的,不要搞错找成是服务端的了)

    (将本地资源上传至云存储空间,如果上传至同一路径则是覆盖。)

    需要的参数就是两个,1云的路径(也就是要上传到哪里) 2文件的路径

    直接使用示例代码中的

    wx.cloud.uploadFile({
      cloudPath: 'example.png',
      filePath: '', // 文件路径
      success: res => {
        // get resource ID
        console.log(res.fileID)
      },
      fail: err => {
        // handle error
      }
    })

    并且在上传之前还要给用户一些提示(因为这种文件或者是什么上传还是要一定的时间,就给用户一些提示即可了)

    每一次上传一个图片 然后点击“自定义”都会在云开发-》存储中 看到新的东西,就是因为使用了时间戳,导致每次上传的云路径都是不同的,

    每次都是新的云路径了

    三、修改自定义头像和微信头像

    ==通过uploadFile 上传了图片和文件之后返回的东西中,会有fileID ,其实小程序中都是通过这个fileID来对图片和文件进行更新的

    因为图片都是从数据库中的users中读取出来的,所以如果要更新这个图片的话,也是要回到数据库中的

    注意:那个fileID其实并不是上传头像的url,而是在云开发存储中的一个标识,在网页中是打不了这个fileID路径的

    四、使用微信头像

    在name.js也使用了 bindgetuserinfo这个函数,这个函数是在获取微信用户信息的按钮自带的

    也是用了里面的模板

    可以直接把之前在name.js里面写的copy过来了,并且还要更新到数据库中才行的

  • 相关阅读:
    linux 开机启动设置
    Ubuntu安装Oracle时出现乱码,及其他安装错误
    ubuntu 设置DNS
    opencv cuda TK1 TX1 兼容设置
    int to string
    post文件的html
    vc 获得调用者的模块名称
    dlib landmark+人面识别
    android破解
    jquery $(document).ready() 与window.onload的区别
  • 原文地址:https://www.cnblogs.com/SCAU-gogocj/p/13168282.html
Copyright © 2020-2023  润新知