经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 移动开发 » 微信小程序 » 查看文章
微信小程序实践:七牛云上传图片
来源:cnblogs  作者:听着music睡  时间:2018/10/30 9:20:51  对本文有异议

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

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

 

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

先选择图片

小程序提供api :chooseImage

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

 

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

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

准备:

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

下载地址:https://developer.qiniu.com/sdk#community-sdk

找到小程序的sdk 点击安装

 


 

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

 

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

使用:

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

 

 

2、使用qiniuUploader上传图片

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

  1.   //上传图片到七牛  updateImg: function(filePath, uptoken) {var that = thisvar 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] == '/') {
  2.         that.setData({
  3.           userAvatar: that.data.domain + qiniu_key
  4.         })
  5.         console.log('avatar_url:' + that.data.userAvatar)
  6.       } else {
  7.         that.setData({
  8.           userAvatar: that.data.domain + '/' + qiniu_key
  9.         })      }      // 图片上传成功之后取消加载框      wx.hideLoading()
  10.     
  11.     }, (error) => {      // 图片上传失败之后取消加载框      wx.hideLoading()      // 把图片更改回来      that.setData({
  12.         userAvatar: that.data.userInfo.avatar
  13.       })
  14.     }, {
  15.       key: qiniu_key,
  16.       uptoken: that.data.token,            // 从自己的服务器获取
  17.       uploadURL: that.data.qiniu_url,      // 从自己的服务器获取
  18.       domain: that.data.domain,            // 从自己的服务器获取
  19.     });
  20.   },

 

3、注意上面在

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

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

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

 

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

 

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

 

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

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

 

 

 

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

 

小程序实践(一):主页tab选项实现

小程序实践(二):swiper组件实现轮播图效果

小程序实践(三):九宫格实现及item跳转

小程序实践(四):动态控制组件的显示/隐藏

小程序实践(五):for循环绑定item的点击事件

小程序实践(六):view内部组件排版

小程序实践(七):页面间传值

小程序实践(八):验证码倒计时功能

小程序实践(九):返回到上一个界面并传值回去

小程序实践(十):textarea实现简单的编辑文本界面

小程序实践(十一):showModal的使用

小程序实践(十二):七牛云上传图片

 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号