效果图


部分源代码


js文件:

var uploadPicture = require('../Frameworks/common.js')
//获取应用实例
const app = getApp()
data:{
// 上传的案例图片集合
uploadImages: [],
// 设置上传案例图片的最大数目
maxImages: 9,
// 案例图片数目是否达到了最大数目
isMaxImagesNum: false,
}, // 选择图片
chooseImageTap: function() {
let _this = this;
wx.showActionSheet({
itemList: ['从相册中选择', '拍照'],
itemColor: "#f7982a",
success: function(res) {
if (!res.cancel) {
if (res.tapIndex == 0) {
_this.chooseWxImage('album')
} else if (res.tapIndex == 1) {
_this.chooseWxImage('camera')
}
}
}
})
}, // 选图
chooseWxImage: function(type) {
let _this = this;
var picsItems;
wx.chooseImage({
// 相关属性设置
count: _this.data.maxImages,
sizeType: ['original', 'compressed'],
sourceType: [type],
success: function(res) {
var imgsrc = res.tempFilePaths;
// concat数组连接,且不会改变现有数组
var picss = _this.data.uploadImages.concat(imgsrc);
var imagesArr = '';
if (picss.length >= _this.data.maxImages) {
_this.setData({
isMaxImagesNum: true
});
}
// 判断选择的数量是否超过设定数量
let num = picss.length <= _this.data.maxImages ? picss.length : _this.data.maxImages;
for (var i = 0; i < num; i++) {
imagesArr += '{"imgurl":"' + picss[i] + '"},';
}
imagesArr = JSON.parse('[' + imagesArr.substring(0, imagesArr.length - 1) + ']');
_this.setData({
uploadImages: picss,
picsItems: imagesArr
});
}
})
}, // 预览所选图片
selImagePre: function(e) {
let _this = this;
wx.previewImage({
urls: this.data.uploadImages,
current: e.currentTarget.dataset.src
})
}, // 图片上传
submitAction: function() {
// 上传所选图片
uploadPicture.uploadimg({
// 传图同时携带的参数
url: app.globalData.baseUrl + 'freePeopleDemoImgs.php',
path: _this.data.uploadImages,
name: 'caseImages',
date: Date.now(),
})
},

common.js

function uploadimg(data) {
console.log(data.date)
var that = this,
i = data.i ? data.i : 0,
success = data.success ? data.success : 0,
fail = data.fail ? data.fail : 0; wx.uploadFile({
url: data.url,
filePath: data.path[i],
name: data.name,
formData: {
// 同时上传userId和当前时间
userId: app.globalData.userId,
date: data.date,
},
success: (resp) => {
success++;
app.globalData.xqimgList += resp.data + ",";
},
fail: (res) => {
fail++;
console.log('fail:' + i + "fail:" + fail);
},
complete: () => {
i++;
if (i == data.path.length) { // 图片传完时停止调用 } else { // 图片还没有传完继续调用函数
data.i = i;
data.success = success;
data.fail = fail;
that.uploadimg(data);
}
}
});
} module.exports = {
uploadimg: uploadimg,
}

源码:https://download.csdn.net/download/yimjune/10757386

原文:https://blog.csdn.net/feng2qing/article/details/81276860

微信小程序多图上传/朋友圈传图效果【附完整源码】的更多相关文章

  1. 微信小程序多张图片上传

    微信小程序上传图片每次只能上传一张,所有很多朋友就会问想要多张图片上传怎么办? 首先,我们来看一看wx.chooseImage(object)和wx.uploadFile(OBJECT)这两个个api ...

  2. [转]微信小程序实现图片上传功能

    本文转自:http://blog.csdn.net/feter1992/article/details/77877659 前端: 微信开发者工具 后端:.Net 服务器:阿里云 这里介绍微信小程序如何 ...

  3. nodeJs实现微信小程序的图片上传

    今天我来介绍一下nodejs如何实现保存微信小程序传过来的图片及其返回 首先wx.uploadFile绝大部分时候是配合wx.chooseImage一起出现的,毕竟选择好了图片,再统一上传是实现用户图 ...

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

    前端: 微信开发者工具 后端:.Net 服务器:阿里云 这里介绍微信小程序如何实现上传图片到自己的服务器上 前端代码 data: { productInfo: {} }, //添加Banner bin ...

  5. 微信小程序--实现图片上传

    前端: 微信开发者工具 后端:.Net 服务器:阿里云 这里介绍微信小程序如何实现上传图片到自己的服务器上 前端代码 data: { productInfo: {} }, //添加Banner bin ...

  6. 微信小程序中图片上传阿里云Oss

    本人今年6月份毕业,最近刚在上海一家小公司实习,做微信小程序开发.最近工作遇到一个小问题. 微信小程序图片上传阿里云服务器Oss也折腾了蛮久才解决的,所以特意去记录一下. 第一步:配置阿里云地址: 我 ...

  7. [组件封装]微信小程序-图片批量上传照片墙

    描述 批量上传图片, 可设置最大上传个数, 可删除, 可设置默认值. 效果 源码 pictures-wall.wxml <view class="picturesWall"& ...

  8. 微信小程序初体验(上)

    版权声明:本文由练小习原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/204 来源:腾云阁 https://www.qclo ...

  9. 坑:微信小程序wx.request和wx.uploadFile中传参数的区别

    微信小程序中通过组件<form>提交表单的时候,在js中通过e.detail.value得到所提交表单的json格式数据.一般提交表单我们都是通过wx.request请求,提交表单数据,通 ...

  10. 【微信小程序】---线上环境搭建

    一.前言 通常我们在本地电脑上开发微信小程序,调用和访问小程序会有很多问题.特别是在配有自己后端的情况下,我们通过真机访问我们的小程序会出现不可访问的问题 二.线上环境搭建 在这里我们主要以腾讯云给大 ...

随机推荐

  1. ROS探索总结(五)——创建简单的机器人模型smartcar

    前面我们使用的是已有的机器人模型进行仿真,这一节我们将建立一个简单的智能车机器人smartcar,为后面建立复杂机器人打下基础. 一.创建硬件描述包 roscreat-pkg  smartcar_de ...

  2. repeater的command事件用法

    当Repeater里面循环控件时就会用到command, 是Repeater控件的原生事件用法 Repeater里面如果循环控件,控件的ID是会被改变的 repeater.itemcommand+= ...

  3. 算法Sedgewick第四版-第1章基础-025-用队列实现unix下的Directory命令

    package algorithms.util; /************************************************************************** ...

  4. EZOJ #73

    传送门 分析 我们知道如果对于模数$P$有$gcd(x,P) = 1$则$x$一定有且仅有一个逆元,可以表示为 $x \equiv \frac{y}{1} (mod P)$ 即为$xy \equiv ...

  5. 导出Excel解决方案之一NOPI

    一.概要 导出Excel这个功能相信很多人都做过,但是实现这个功能解决方案有好几种,今天我未大家介绍一种比较新的,其实也不新了- -!它叫NPOI,可以完美操作EXCEl的导入和导出操作,让我们一起看 ...

  6. Hive安装及配置

    第一步:下载hive并解压 tar zxvf hive-0.8.1-bin.tar.gz 重命名: mv hive-0.8.1-bin hive 给权限:chown hadoop:hadoop hiv ...

  7. 数据结构_XingYunX(幸运儿)

    数据结构_XingYunX(幸运儿) 问题描述 泡泡最近下了个饱了吗 app,这个 app 推出了个坑蒙拐骗的红包系统,只要花一块钱买张一元抵用券,就有参与 20 元红包的抽奖机会,抽奖界面会实时显示 ...

  8. LeetCode第35题:搜索插入位置

    题目描述: 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 你可以假设数组中无重复元素. 示例 1: 输入: [1,3,5,6 ...

  9. LeetCode第21题:合并两个有序链表

    题目描述: 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1- ...

  10. Oracle 系统表大全

    数据字典dict总是属于Oracle用户sys的. 1.用户: select username from dba_users; 改口令 alter user spgroup identified by ...