效果图


部分源代码


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. 详解CSS display:inline-block的应用(转)

    详解CSS display:inline-block的应用   阅读目录 基础知识 inline-block的问题 inline-block的应用 总结 本文详细描述了display:inline-b ...

  2. array_unique() 函数移除数组中的重复的值

    array_unique() 函数移除数组中的重复的值,并返回结果数组. 当几个数组元素的值相等时,只保留第一个元素,其他的元素被删除. 返回的数组中键名不变.

  3. 35-迷宫寻宝(一)-NYOJ82

    http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=82 迷宫寻宝(一) 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   ...

  4. ROS Learning-017 Arduino-For-ROS-002 第一个程序: Hello World

    Arduino For ROS-002 - 第一个程序: Hello World 我的Ubuntu系统:Ubuntu 14.04.10 TLS 32位 Arduino的版本:Arduino 1.6.1 ...

  5. Luogu 3332 [ZJOI2013]K大数查询

    BZOJ 3110 很早就想写的试炼场题. 不会整体二分啊呜呜呜,只能写写树套树. 有一个trick就是外层使用一个权值线段树,把位置作为下标的线段树放在内层,这样子的话我们在查询$k$大的时候就可以 ...

  6. [译]Javascript substring实例

    本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?v=PMsVM7rjupU& ...

  7. mysql 远程登录与表名大小写问题

    好久没写博客了,这段时间在学习一个开源的项目,里面使用到了mysql,好久没使用mysql了.在使用过程中遇到了一个问题,远程登陆.报错信息很明显,连接失败.解决思路如下: 1. 首先检查到服务器网络 ...

  8. UINavigationController + UIScrollView组合,视图尺寸的设置探秘(三)

    还是在苹果的 View Controller Catalog for iOS 文章中找到答案.文中提到了两点: 1.If the navigation bar or toolbar are visib ...

  9. K-Dominant Character (模拟)

    You are given a string s consisting of lowercase Latin letters. Character c is called k-dominant iff ...

  10. (字符转化)UTF-8和GBK有什么区别?

    GBK包含全部中文字符:UTF-8则包含全世界所有国家需要用到的字符. GBK编码:是指中国的中文字符,其它它包含了简体中文与繁体中文字符,另外还有一种字符“gb2312”,这种字符仅能存储简体中文字 ...