微信小程序多图上传/朋友圈传图效果【附完整源码】
效果图
部分源代码
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
微信小程序多图上传/朋友圈传图效果【附完整源码】的更多相关文章
- 微信小程序多张图片上传
微信小程序上传图片每次只能上传一张,所有很多朋友就会问想要多张图片上传怎么办? 首先,我们来看一看wx.chooseImage(object)和wx.uploadFile(OBJECT)这两个个api ...
- [转]微信小程序实现图片上传功能
本文转自:http://blog.csdn.net/feter1992/article/details/77877659 前端: 微信开发者工具 后端:.Net 服务器:阿里云 这里介绍微信小程序如何 ...
- nodeJs实现微信小程序的图片上传
今天我来介绍一下nodejs如何实现保存微信小程序传过来的图片及其返回 首先wx.uploadFile绝大部分时候是配合wx.chooseImage一起出现的,毕竟选择好了图片,再统一上传是实现用户图 ...
- 微信小程序实现图片上传功能
前端: 微信开发者工具 后端:.Net 服务器:阿里云 这里介绍微信小程序如何实现上传图片到自己的服务器上 前端代码 data: { productInfo: {} }, //添加Banner bin ...
- 微信小程序--实现图片上传
前端: 微信开发者工具 后端:.Net 服务器:阿里云 这里介绍微信小程序如何实现上传图片到自己的服务器上 前端代码 data: { productInfo: {} }, //添加Banner bin ...
- 微信小程序中图片上传阿里云Oss
本人今年6月份毕业,最近刚在上海一家小公司实习,做微信小程序开发.最近工作遇到一个小问题. 微信小程序图片上传阿里云服务器Oss也折腾了蛮久才解决的,所以特意去记录一下. 第一步:配置阿里云地址: 我 ...
- [组件封装]微信小程序-图片批量上传照片墙
描述 批量上传图片, 可设置最大上传个数, 可删除, 可设置默认值. 效果 源码 pictures-wall.wxml <view class="picturesWall"& ...
- 微信小程序初体验(上)
版权声明:本文由练小习原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/204 来源:腾云阁 https://www.qclo ...
- 坑:微信小程序wx.request和wx.uploadFile中传参数的区别
微信小程序中通过组件<form>提交表单的时候,在js中通过e.detail.value得到所提交表单的json格式数据.一般提交表单我们都是通过wx.request请求,提交表单数据,通 ...
- 【微信小程序】---线上环境搭建
一.前言 通常我们在本地电脑上开发微信小程序,调用和访问小程序会有很多问题.特别是在配有自己后端的情况下,我们通过真机访问我们的小程序会出现不可访问的问题 二.线上环境搭建 在这里我们主要以腾讯云给大 ...
随机推荐
- 详解CSS display:inline-block的应用(转)
详解CSS display:inline-block的应用 阅读目录 基础知识 inline-block的问题 inline-block的应用 总结 本文详细描述了display:inline-b ...
- array_unique() 函数移除数组中的重复的值
array_unique() 函数移除数组中的重复的值,并返回结果数组. 当几个数组元素的值相等时,只保留第一个元素,其他的元素被删除. 返回的数组中键名不变.
- 35-迷宫寻宝(一)-NYOJ82
http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=82 迷宫寻宝(一) 时间限制:1000 ms | 内存限制:65535 KB 难度: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 ...
- Luogu 3332 [ZJOI2013]K大数查询
BZOJ 3110 很早就想写的试炼场题. 不会整体二分啊呜呜呜,只能写写树套树. 有一个trick就是外层使用一个权值线段树,把位置作为下标的线段树放在内层,这样子的话我们在查询$k$大的时候就可以 ...
- [译]Javascript substring实例
本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?v=PMsVM7rjupU& ...
- mysql 远程登录与表名大小写问题
好久没写博客了,这段时间在学习一个开源的项目,里面使用到了mysql,好久没使用mysql了.在使用过程中遇到了一个问题,远程登陆.报错信息很明显,连接失败.解决思路如下: 1. 首先检查到服务器网络 ...
- UINavigationController + UIScrollView组合,视图尺寸的设置探秘(三)
还是在苹果的 View Controller Catalog for iOS 文章中找到答案.文中提到了两点: 1.If the navigation bar or toolbar are visib ...
- K-Dominant Character (模拟)
You are given a string s consisting of lowercase Latin letters. Character c is called k-dominant iff ...
- (字符转化)UTF-8和GBK有什么区别?
GBK包含全部中文字符:UTF-8则包含全世界所有国家需要用到的字符. GBK编码:是指中国的中文字符,其它它包含了简体中文与繁体中文字符,另外还有一种字符“gb2312”,这种字符仅能存储简体中文字 ...