微信小程序实现上传图片小功能

作者:花笙_ 时间:2024-04-26 17:11:56 

本文实例为大家分享了微信小程序实现上传图片的具体代码,供大家参考,具体内容如下

用到的api
wx.chooseMedia(); 用于拍摄或从手机相册中选择图片或视频

功能:点击上传图片,可多选,或者拍照上传;点击图片放大查看;长按图片删除

效果图

微信小程序实现上传图片小功能

json里面引用weui的组件uploader

{
  "navigationBarTitleText": "评价工单",
  "usingComponents": {
    "mp-uploader": "weui-miniprogram/uploader/uploader",
    "mp-cells": "weui-miniprogram/cells/cells",
    "mp-cell": "weui-miniprogram/cell/cell"
  }
}

wxml

<view class="weui-uploader">
     <view class="img-v weui-uploader__bd">
        <view class='pic' wx:for="{{technicianAssessPicture}}" wx:for-item="item" wx:key="*this">
            <image class='weui-uploader__img ' src="{{item}}" data-index="{{index}}" mode="aspectFill" bindlongpress="deleteTechnician" bindtap="previewTechnician">
            </image>
        </view>
        <view class="weui-uploader__input-box pic" bindtap="technicianImg"> </view>
     </view>
</view>

js

data:(){
    technicianAssessPicture: [], // 技师图片
}
// 上传技师图片
  technicianImg: function (e) {
    var that = this;
    var technicianAssessPicture = this.data.technicianAssessPicture;
    if (technicianAssessPicture.length >= 9) {
      this.setData({
        lenMore: 1
      });
      setTimeout(function () {
        that.setData({
          lenMore: 0
        });
      }, 2500);
      return false;
    }
    wx.chooseMedia({
      count: 9,   // 默认9
      mediaType: ['image','video'],   // 文件类型
      // image    只能拍摄图片或从相册选择图片    
      // video    只能拍摄视频或从相册选择视频
      
      // sizeType: ['original', 'compressed'],  //所选的图片的尺寸  original原图,compressed压缩图
      // 仅对 mediaType 为 image 时有效,是否压缩所选文件
      
      sourceType: ['album', 'camera'],  //图片和视频选择的来源
      maxDuration: 30,   //  拍摄视频最长拍摄时间,单位秒。时间范围为 3s 至 60s 之间。不限制相册。
      camera: 'back',    // 仅在 sourceType 为 camera 时生效,使用前置或后置摄像头
      //  back    使用后置摄像头;front    使用前置摄像头
      success: function (res) {
        var tempFilePaths = res.tempFiles;
        var technicianAssessPicture = that.data.technicianAssessPicture;
        for (var i = 0; i < tempFilePaths.length; i++) {
          if (technicianAssessPicture.length >= 9) {
            that.setData({
              technicianAssessPicture: technicianAssessPicture
            });
            return false;
          } else {
            const tempFilePaths1 = tempFilePaths.map(v=>v.tempFilePath)
            //   tempFilePaths数据是json数组,我们需要的是普通数组需要处理一下
            technicianAssessPicture.push(tempFilePaths1[i]);
          }
        }
        that.setData({
          technicianAssessPicture: technicianAssessPicture
        });
        console.log(that.data.technicianAssessPicture, 'hhhhhhhhhhhhhhhhhhhhh');
      }
    });
  },

处理后打印出来的数据

微信小程序实现上传图片小功能

预览,删除

// 预览图片
previewTechnician: function (e) {
    //获取当前图片的下标
    var index = e.currentTarget.dataset.index;
    //所有图片
    var technicianAssessPicture = this.data.technicianAssessPicture;
    wx.previewImage({
      //当前显示图片
      current: technicianAssessPicture[index],
      //所有图片
      urls: technicianAssessPicture
    })
  },

  // 长按删除
  deleteTechnician: function (e) {
    var that = this;
    var technicianAssessPicture = that.data.technicianAssessPicture;
    var index = e.currentTarget.dataset.index;    //   获取当前长按图片下标
    wx.showModal({
      // cancelColor: 'cancelColor',
      title: '提示',
      content: '确定要删除此图片吗?',
      success: function (res) {
        if (res.confirm) {
          console.log('确定');
          technicianAssessPicture.splice(index, 1);
        } else if (res.cancel) {
          console.log('取消');
          return false;
        }
        that.setData({
          technicianAssessPicture
        })
      }
    })
},

来源:https://blog.csdn.net/wang_59881/article/details/121747304

标签:微信小程序,上传图片
0
投稿

猜你喜欢

  • MySQL数据库中与 ALTER TABLE 有关的问题

    2009-01-14 11:57:00
  • ASP网站远程客户实现EXCEL打印功能

    2009-02-02 09:01:00
  • PHP制作3D扇形统计图以及对图片进行缩放操作实例

    2023-11-17 19:31:47
  • Python简洁优雅的推导式示例详解

    2022-06-26 11:52:20
  • python中的不可变数据类型与可变数据类型详解

    2022-12-27 21:56:24
  • Python实战之单词打卡统计

    2023-06-06 18:22:17
  • 如何利用PyQt5制作一个简单的登录界面

    2023-11-18 20:36:31
  • JS实现选择TextArea内文本的方法

    2024-04-16 10:40:02
  • 详解Python中的join()函数的用法

    2021-01-20 11:21:23
  • 零基础写python爬虫之抓取糗事百科代码分享

    2021-02-01 11:54:39
  • python使用plot绘制未来15天气温折线图

    2022-11-06 02:09:41
  • python的dict,set,list,tuple应用详解

    2023-03-01 17:48:38
  • DreamweaverMX2004的一句话技巧

    2009-05-22 18:23:00
  • Antd的table组件表格的序号自增操作

    2024-04-28 09:31:40
  • SqlServer中的日期与时间函数

    2011-11-03 17:12:34
  • Python接口自动化之request请求封装源码分析

    2023-12-29 02:42:32
  • Python机器学习性能度量利用鸢尾花数据绘制P-R曲线

    2023-01-27 20:55:48
  • python Selenium等待元素出现的具体方法

    2022-02-22 02:47:20
  • 基于Python的OCR实现示例

    2021-03-05 20:58:43
  • JavaScript简单实现弹出拖拽窗口(一)

    2024-04-28 09:42:56
  • asp之家 网络编程 m.aspxhome.com