博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
小程序实践(十二):七牛云上传图片
阅读量:6194 次
发布时间:2019-06-21

本文共 2497 字,大约阅读时间需要 8 分钟。

小程序更换用户头像功能、更换图片等功能

思路图片上传七牛云,成功之后返回的图片url上传项目服务器

 

------------------------------------------------------------------------------------------------------

先选择图片

小程序提供api :chooseImage

var that = this    wx.chooseImage({      sourceType: ['album', 'camera'], // 相册选取+拍摄选取      sizeType: ['compressed'], // 压缩图      count: 1, // 最多可以选择的图片张数      success: function(res) {        // 成功 , 显示图片        that.setData({          userAvatar: res.tempFilePaths        })        //上传图片到七牛        wx.showLoading({          title: '',          mask: true        })        that.updateImg(res.tempFilePaths, that.data.token)      },      fail: function(res) {        // 失败      }    })

 

------------------------------------------------------------------------------------------------------

获取到图片之后 上传图片到七牛云

准备:

先下载配置小程序七牛云的sdk

下载地址:

找到小程序的sdk 点击安装

 

 

下载一个文件 ,解压缩之后找到sdk目录下的 qiniuUploader.js 文件  复制到小程序项目的utils目录下,配置就完成了。

 

------------------------------------------------------------------------------------------------------

使用:

1、在需要用到七牛云的页面 require 七牛云的sdk

 

 

2、使用qiniuUploader上传图片

注意,uptoken  uploadURL domain 是从服务器获取到的 , key就是上传到七牛云的图片路径+文件名

//上传图片到七牛  updateImg: function(filePath, uptoken) {    var that = this    var pathX = filePath + ''    var qiniu_key =  Date.parse(new Date()) / 1000 + ".jpg"    qiniuUploader.upload(pathX, (res) => {      // 将图片url上传给服务器      if (that.data.domain[that.data.domain.length - 1] == '/') {        that.setData({          userAvatar: that.data.domain + qiniu_key        })        console.log('avatar_url:' + that.data.userAvatar)      } else {        that.setData({          userAvatar: that.data.domain + '/' + qiniu_key        })      }      // 图片上传成功之后取消加载框      wx.hideLoading()        }, (error) => {      // 图片上传失败之后取消加载框      wx.hideLoading()      // 把图片更改回来      that.setData({        userAvatar: that.data.userInfo.avatar      })    }, {      key: qiniu_key,      uptoken: that.data.token,            // 从自己的服务器获取      uploadURL: that.data.qiniu_url,      // 从自己的服务器获取      domain: that.data.domain,            // 从自己的服务器获取    });  },

 

3、注意上面在

that.updateImg(res.tempFilePaths, that.data.token)

之前进行了一步显示加载框的操作,并设置 mask:true

wx.showLoading({          title: '',          mask: true        })

 

该属性作用:是否显示透明蒙层,防止触摸穿透,默认是false

 

这里设置为true ,则为了加载框不消失的情况下,无法进行别的触摸操作

 

因为要上传图片到七牛云,这是一个异步操作,如果上传图片到七牛云还没有成功,用户点击了退出或者保存按钮,就会导致七牛云返回的图片url没有更新到服务器

所以在图片上传七牛云结果里面再进行关闭加载框 就能保证 上传图片到七牛云这个操作完成之后才能进行别的触摸操作。

 

 

 

--------------------------------------------------------------------------------------

 

 

转载地址:http://keuca.baihongyu.com/

你可能感兴趣的文章
贝叶斯分类器
查看>>
Swing的Look And Feel机制研究
查看>>
linux 使用记录
查看>>
在word中输入任意角度旋转图片
查看>>
网站伪静态的好处与坏处
查看>>
《JAVA程序设计与实例》记录与归纳--继承与多态
查看>>
pytorch torchvision.ImageFolder的使用
查看>>
ROS 框架整体学习
查看>>
面试总结之人工智能AI(Artificial Intelligence)/ 机器学习(Machine Learning)
查看>>
Vijos P1303 导弹拦截【最长上升子序列+DP】
查看>>
UVALive3135 UVA1203 POJ2051 ZOJ2212 Argus【优先队列】
查看>>
Python程序-离散和线性图形
查看>>
npm安装包时 --save 和 --save-dev 的区别
查看>>
WinForm 使用 HttpUtility
查看>>
#ifdef 的技巧用法
查看>>
前端同学大福利,最全的面试题目整理
查看>>
洛谷P3674 小清新人渣的本愿
查看>>
c命令行参数
查看>>
Loj #2983. 「WC2019」数树
查看>>
Array types are now written with the brackets around the element type
查看>>