效果图


部分源代码


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. 蓝桥杯【入门训练】 Fibonacci数列

    问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1. 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少. 输入格式 输入包含一个整数n ...

  2. 线程池的原理以及实现线程池的类ExecutorService中方法的使用

    1.线程池:线程池就是就像一个容器,而这个容器就是用来存放线程的,且有固定的容量. 如果没有线程池,当需要一个线程来执行任务时就需要创建一个线程,我们设创建线程的时间为t1,执行线程的时间为t2,销毁 ...

  3. p1129 [ZJOI2007]矩阵游戏

    传送门 分析 不难想到将黑点的行列连边,然后判断最大匹配是否等于n 代码 #include<iostream> #include<cstdio> #include<cst ...

  4. Luogu 2149 [SDOI2009]Elaxia的路线

    感觉这题可以模板化. 听说spfa死了,所以要练堆优化dijkstra. 首先对$x_{1},y_{1},x_{2},y_{2}$各跑一遍最短路,然后扫一遍所有边看看是不是同时在两个点的最短路里面,如 ...

  5. WOJ 39 塌陷的牧场

    感觉……做克老师的题,都很神仙…… 还有去年一个人坐在家里写挂60分算法的惨痛记忆,凭借着一点点记忆重新写这道题. 感觉这并查集真的很神仙,仍然不会算最后的α的复杂度……自己想感觉无论如何都要挂个lo ...

  6. 使用database control配置数据库时 要求在当前oracle主目录中配置监听程序

    1:配置本地的环境变量 打开cmd命令界面  C:\Users\gechong>lsnrctl start 这时候报适配器错误 2.在cmd中输入 tnslsnr命令

  7. EXCEL数据导入数据库的另一种方式

    一.直接代码 var fileResult = openFileDialog1.ShowDialog(); if (fileResult == System.Windows.Forms.DialogR ...

  8. 数据结构 happiness

    问题描述 这一天是小 V 的生日,他收到了朋友们送给他的礼物.现在,小 V 有 n 件礼物,他将这 n 件礼物排成一排,依次编号为 1 到 n,每件礼物都有一个满意值 w[i].现在小 V 要从中选取 ...

  9. SPOJ - AMR11H Array Diversity (水题排列组合或容斥)

    题意:给定一个序列,让你求两种数,一个是求一个子序列,包含最大值和最小值,再就是求一个子集包含最大值和最小值. 析:求子序列,从前往记录一下最大值和最小值的位置,然后从前往后扫一遍,每个位置求一下数目 ...

  10. Web开发秘方(WEB DEVELOPMENT RECIPES)[47.5MB] PDF扫描版

    不借助插件怎样在移动设备上实现动画效果?怎样快速搭建HTML电子邮箱?怎样制作跨PC和移动设备显示的应用界面?怎样利用最新的JavaScript框架提高应用的响应速度?怎样有效利用CoffeeScri ...