效果:

1,xhtml  

其中wx:for="{{picArr}}" 为所有的图片张数,  src 为img 的图片路径  ; 自定义data-src为当前点击的图片路劲(为预览做准备) 自定义 data-list为所有的图片张数(为预览做准备)

<block wx:key="imgbox" wx:for="{{picArr}}">
          <view class='add-pic'>
            <image class='add-pic' data-list='{{picArr}}' data-src="{{urlPrev + '/zdhx/WXA018/getImg?name=' + item.nowURL}}"      src="{{urlPrev + '/zdhx/WXA018/getImg?name=' + item.nowURL}}" data-index="{{index}}" bindtap="picPreview"></image>
            <view class='img-de'  bindtap="deleteImg" data-index="{{index}}">
              <icon type="clear" size="20" />
            </view>
          </view>
 </block>

    //点击+号上传   样式自己写
        <view class='add-pic'>
          <view class='btn' bindtap='chooseImg'>+</view>
        </view>

2,JS

Page({
       data{
            urlPrev: serverInterface.urlPrev,  //urlPrev为接口ip地址  let serverInterface = require("../../utils/server.js");
            picArr: [ ],
            arrPicSave:[ ],
        }       
  })

// 上传图片
  chooseImg: function () {
    let that = this;
    wx.chooseImage({
      count: 9,
      sizeType: [],
      sourceType: ['album', 'camera'],
      success: function (res) {
        let tempFilePaths = res.tempFilePaths
        for (let i = 0; i < tempFilePaths.length; i++) {
          wx.uploadFile({
            url: that.data.urlPrev + '/zdhx/WXA018/uploadTask',
            filePath: tempFilePaths[i],
            name: 'file',
            formData: {
            },
            success: function (res) {
              wx.hideLoading();
              let imgeList = that.data.picArr.concat(JSON.parse(res.data).entity);
              that.setData({
                picArr: imgeList
              });
            }
          });
          wx.showLoading({
            title: '正在上传...',
          })
        }
      },
      fail: function (res) {
        console.log(res, '失败');
      },
      complete: function (res) { },
    })
  },

  // 删除图片
  deleteImg: function (e) {
    let that = this;
    let index = e.currentTarget.dataset.index; 
    let images = that.data.picArr;
    images.splice(index, 1);
    that.setData({
      picArr: images
    });
  },
  // 图片预览
  picPreview: function (event) {
    let _this = this;
    let urlPrev = _this.data.urlPrev
    //  获取当前点击src,以及接口返回的所有src   就是xhtml里的data-src和data-list
    var src = event.currentTarget.dataset.src;
    var imgList = event.currentTarget.dataset.list;
    //  每次点击图片,先清空数组
    _this.setData({
      arrPicSave: []
    })
    //  遍历多少张图片,然后字符串转数组并添加到arrPicSave中
    for (var i = 0; i < imgList.length; i++) {
      var forEachData = urlPrev + '/zdhx/WXA018/getImg?name=' + imgList[i].nowURL.split(',')
      _this.data.arrPicSave.push(forEachData);
    }
    // 预览
    wx.previewImage({
      current: src,      //当前点击预览的图片
      urls: _this.data.arrPicSave   //供左右侧滑的所有图片
    })
  },

小程序图片上传及预览和删除相关推荐

  1. 微信小程序图片上传和预览以及取消上传图片案例

    前言: 做小程序项目遇到一个需求,就是上传图片和预览,以及取消指定的图片,其实这个功能挺好搞的,借助微信官方的API结合实现,只不过注意一点细节.不多说了直接上代码和效果图.大家可以直接复制我的代码进 ...

  2. MUI 图片上传、预览、删除重选等等实现

    MUI 图片上传.预览.删除重选等等实现 本地项目路径: C:\Users\Administrator\Desktop\超实用的javascript代码\10.5 - MUI 轮播\login\set ...

  3. 微信小程序 删除服务器图片,微信小程序实现图片上传放大预览删除代码

    本文实例为大家分享了微信小程序图片上传放大预览的具体代码,供大家参考,具体内容如下 image.js代码: = 9) { this.setData({ lenMore: 1 }); setTimeou ...

  4. uni-app知识点整理(5)- 网络请求、数据缓存、图片上传和预览

    目录 一.网络请求 1.1 发送get请求 二.数据缓存 2.1 uni.setStorage(OBJECT) 2.2 uni.setStorageSync(KEY,DATA) 2.3 uni.get ...

  5. **微信小程序图片上传+后台PHP修改图片名称**

    微信小程序图片上传+后台PHP修改图片名称 前端代码:比较随意 <view class="weui-uploader"><view class="img ...

  6. html之file标签 --- 图片上传前预览 -- FileReader

    记得以前做网站时,曾经需要实现一个图片上传到服务器前,先预览的功能.当时用html的<input type="file"/>标签一直实现不了,最后舍弃了这个标签,使用了 ...

  7. ajax上传图片并显示,Ajax实现图片上传并预览

    效果见尾部. 最近在使用ThinkPHP5开发项目中客户有一个需求是在图片上传时附带预览功能.虽然现在有很多的插件能实现,但是还是觉得自己写比较好.我们知道,图片上传需要一个input:file表单 ...

  8. html ajax 图片上传,Ajax实现图片上传并预览功能

    先给大家展示下效果图,大家感觉不错,请参考实现代码. 最近在使用ThinkPHP5开发项目中客户有一个需求是在图片上传时附带预览功能.虽然现在有很多的插件能实现,但是还是觉得自己写比较好.我们知道,图 ...

  9. jQuery图片批量上传插件源码,支持批量上传、预览、删除、放大,可配置上传数量、上传大小、追加方式,含详细使用文档

    jQuery图片批量上传插件源码,支持批量上传.预览.删除.放大,可配置上传数量.上传大小.追加方式,含详细使用文档 程序包内含使用Demo 完整程序源代码:jQuery图片批量上传插件源码 上传前 ...

  10. layui上传图片列表展示_ThinkPHP5+Layui实现图片上传加预览功能

    html代码 上传封面 js代码 var uploadInst = upload.render({ elem:'#cover' ,url:'addCourse' ,accept:'file' // 允 ...

最新文章

  1. Python pytagcloud 中文分词 生成标签云 系列(一)
  2. Java程序设计专题
  3. java对象的访问定位_JVM创建对象及访问定位过程详解
  4. iOS之深入解析KVC的底层原理和自定义KVC的实现
  5. c++-内存管理-G4.9
  6. Linux 下如何查找 MySQL 数据库的数据根目录呢?
  7. linux:根据关键字或日期查找日志
  8. 各位加了一天班累了吧?那我们来继续未完的表单验证吧
  9. go 递归tree关系_Go实现一个二叉搜索树
  10. 简单python脚本实例-python下10个简单实例代码
  11. Ubuntu“ System Program Problem Detected”问题
  12. 鲁大师2022半年报显卡排行,NVIDIA霸榜,七彩虹成最大赢家!
  13. python plot线形和颜色
  14. 创业公司天使轮、A轮、B轮……IPO融资时如何分配股权?
  15. 【BHOJ 女娲加农炮 |、||】贪心 | 优先队列 | 堆 | E
  16. 单、双目相机标定及其校正相关函数整理
  17. 如何将图片转换、合并为PDF文件?
  18. 推薦 CSDN 最讓人佩服的專家,袁萌。
  19. Julia 构建对角矩阵 diag matrix
  20. 宽带访问安全:电缆访问和 xDSL 线路--网络大典

热门文章

  1. 【Matlab绘图】plot3函数绘制三维点或线图
  2. 《地理信息系统概论》课后习题全部答案_黄杏元
  3. canvas实现点连线动画
  4. 计算机的字体设为中文繁体,中文转换繁体
  5. 怎么把手机字体改成繁体_如何把手机字体变成繁体 繁体字转换器
  6. AutoCAD2000命令详解
  7. 电大计算机本科离散数学考试题,2017年电大本科离散数学期末考试复习试题及答案.doc...
  8. Handler源码阅读
  9. 因使用率过低,谷歌翻译退出中国
  10. hp 磁带机安装配置