玩转小程序图片功能

背景

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

图片上传

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

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

  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

时间: 2024-10-11 05:20:34

玩转小程序图片功能的相关文章

微信小程序--图片相关问题合辑

图片上传相关文章 微信小程序多张图片上传功能 微信小程序开发(二)图片上传 微信小程序上传一或多张图片 微信小程序实现选择图片九宫格带预览 ETL:微信小程序之图片上传 微信小程序wx.previewImage预览图片 微信小程序之预览图片 小程序开发:上传图片到腾讯云 .NET开发微信小程序-上传图片到服务器 微信小程序本地图片处理--按屏幕尺寸插入图片 [微信小程序]上传图片到阿里云OSS Python Flask小程序文件(图片)上传技巧 小程序图片上传阿里OSS使用方法 微信小程序问题汇

关于微信小程序图片自适应的部分做法

关于微信小程序图片自适应的做法 在日常业务场景中,很多地方都需要图片进行列表的显示,但是这样就存在一个问题,由于每张上传的图片规格并不是一样的,就会发生图片要么过大,要么过小,或者被拉伸的情况,如下图 对于这个情况,我的思路是可以使用image标签内的bindload属性进行计算,bindload属性的介绍如下 下面就是具体的方法流程 1.首先我们在页面上进行布局,只需要给image标签的view容器添加宽高即可,并使用wx:for进行遍历渲染,通过自定义属性data-i传入索引值,容器我同时也

又更新,附近的小程序、小程序后台功能升级!

前几天,小编在公众号发布了一篇关于"附近的小程序"新功能的文章,那时候微信还没有正式发出更新通知,昨天晚上11点,微信的更新通知就来了,这次不仅带来了"附近的小程序"的新功能,还有小程序后台管理功能升级. "附近的小程序"中的分类项目 这几天有打开"附近的小程序"的用户,应该会发现,在这界面中多出了分类项目,只有"全部"和"餐饮美食"两个选项. "全部"不用说,&qu

店铺无缝对接一号旺铺小程序 盘点微信小程序新增功能

前段时间,笔者写过一篇<不开发,商家店铺如何快速接入微信一号旺铺小程序>的文章.结果反响平平,无人问津.所以,笔者就在想,也许小程序真的大势已去. 盘点迄今为止微信小程序增加的功能:价值提升,商家福音到了! 盘点迄今为止微信小程序增加的功能:价值提升,商家福音到了! 但是,就在本人下定决心以后少关注小程序的当口,腾讯似乎终于觉醒了,张小龙也终于向现实低头妥协,微信官方宣布的小程序新增功能绝地反击,热乎了众多商家的心,也活跃了个人创业开发者的兴奋基因.其实,自小程序面市已来,其功能一直在不断完善

小程序---&gt;小程序图片上传阿里OSS使用方法

小程序图片上传阿里OSS使用方法 首先看下参考文档 ( http://blog.csdn.net/qq_38125123/article/details/73870667) 这里只将一些运用过程中遇到的问题及解决办法: 1.cryptojs,sha1js,hmacjs,base64js在哪下载及使用方法: 文件可以在阿里oss实例文档中找到. 在运用过程中如果是通过require引入的,会找不到引入的方法,原因是这些js文档没有模块导出,可以在原文件里找到其顶部全局对象,exports出来即可.

微信小程序 --- 完成小程序支付功能

最近开发小程序,一直在看小程序的支付.经过一天的努力,小程序支付功能最终实现了. 下面感谢 csdn 博主:千堆雪惹尘埃 发布的 " 小程序与php 实现微信支付 " 原文地址: http://blog.csdn.net/admin1008611/article/details/73240458 下面是我自己写的代码:使用的 thinkphp:其他的可以参考修改: 服务端: 获取用户的 openid: public function get_openid(){ $data = arra

如何玩转小程序+公众号?手把手教你JeeWx小程序CMS与公众号关联

随着微信小程序新功能.新入口的不断更新,小程序的商业价值逐步增强,特别是小程序与公众号的深度融合,已经让小程序成为各行业新的营销渠道.Jeewx平台专注小程序的开发,逐步完善小程序生态圈,通过简单操作即可实现公众号拥有小程序能力.下面给大家介绍一下如何将jeewx小程序CMS关联公众号. 第一步:打开微信公众号后台https://mp.weixin.qq.com/,找到 "小程序-小程序管理"菜单,点击后,右侧有 "关联小程序",点击进入.(目前微信已开放所有的公众

[转] 扩展微信小程序框架功能

通过第三方 JavaScript 库,扩展微信小程序框架功能. 扩展微信小程序框架功能(1)——Promise ES6 对 Promise 有了原生的支持,但微信开发者工具更新版本(0.11.112200)后, 移除了开发者工具对 ES6 中Promise 特性原生的支持, 需要引入第三方的 Promise 库. 扩展微信小程序框架功能(2)——Generator Generator函数是ES6提供的一种异步编程解决方案,语法行为与传统函数完全不同. 扩展微信小程序框架功能(3)——函数功能增强

微信小程序支付功能 C# .NET开发

微信小程序支付功能的开发的时候坑比较多,不过对于钱的事谨慎也是好事.网上关于小程序支付的实例很多,但是大多多少有些问题,C#开发的更少.此篇文档的目的是讲开发过程中遇到的问题做一个备注,也方便其他开发的同学作为参考! 1.首先建议把官方文档支付部分看上三遍,每个细节都不要放过,因为任何一个点和微信要求不符都会导致支付不成功.https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=3_1 2.经过验证的微信支付功能,会需要一些商