玩转小程序图片功能

背景

最近经常接触小程序,图片功能还是比较重要的,于是自己小小总结了一番,希望对大家有帮助。

图片上传

应用场景:个人页的头像,提交资料的图像文件等

我认为一个正确的图片上传流程:

  1. 客户端上传图片
  2. 预览
  3. 提交到服务器保存

所以,对于小程序这个流程就很方便了,只需要用到三个方法:

  1. wx.chooseImage
  2. wx.previewImage(通过图片直接显示,可不需要)
  3. wx.uploadFile

以下简略用几个按钮模拟这个过程,先上代码:

testimg.wxml

<view class="container">
  <view class="userinfo">
    <button wx:if="{{!hasImage}}" bindtap='chooseImage'> 上传头像 </button>
    <block wx:else>
      <button bindtap='previewImage'> 预览头像 </button>
      <button bindtap='getImageInfo'> 获取头像信息 </button>
      <button bindtap='uploadImage'> 提交头像 </button>
      <image src="{{userInfo.avatarUrl}}"></image>
    </block>
  </view>
</view>

testimg.js

Page({
  data: {
    userInfo: {},
    hasImage: false,
  },
  chooseImage: function () {
    var that = this;
    wx.chooseImage({
      count: 1, // 默认9
      sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
      sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
      success: function (res) {
        // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
        var tempFilePaths = res.tempFilePaths
        console.log(tempFilePaths)
        that.setData({
          'userInfo.avatarUrl': tempFilePaths[0],
          hasImage: true,
        })
      }
    })
  },
  previewImage: function () {
    var imgUrl = this.data.userInfo.avatarUrl;
    wx.previewImage({
      current: imgUrl, // 当前显示图片的http链接
      urls: [imgUrl] // 需要预览的图片http链接列表
    })
  },
  getImageInfo: function () {
    var imgUrl = this.data.userInfo.avatarUrl
    wx.getImageInfo({
      src: imgUrl,
      success: function (res) {
        console.log(res)
      }
    })
  },
  uploadImage: function () {
    console.log(111);
    var imgUrl = this.data.userInfo.avatarUrl
    wx.uploadFile({
      url: 'http://npt.catww.com:8572/index.php/Mina/User/upload',
      filePath: imgUrl,
      name: 'file',
      formData: {
        'user': 'test'
      },
      success: function (res) {
        console.log(res);
        var data = res.data
        //do something
      },
    })
  }
})

解释:

  1. 上传本地图片到临时资源
  2. 可用图片的src属性或者用wx.previewImage作为预览
  3. 上传图片到服务器,内容文件和其他文字,这就相当于上传一个表单,就用这个方法就可以
  4. 中间有个获取图片信息的,可以用作校验图片信息,比如图片大小,图片格式

转载于:https://www.cnblogs.com/liangshaoming/p/8673071.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值