微信小程序:多张图片上传
最近在写小程序的相册,需要多张图片的上传。因为小程序不支持数组的多张图片同时上传,然后根据自己的需求+借鉴网上各位大神的案例,总算搞定。分享下,不足之处,多多指教哦
页面wxml:
<form bindsubmit="formSumbmit" bindreset="formReset">
 <view class="modal-content">
    <view class="modal-photo">
         <view class="photo-img">
         <view wx:for="{{img_arr}}" wx:key="key">
            <image src='{{item}}'></image>
         </view>
         </view>
    </view>
 </view>
 <view class="modal-footer">
 <view class="btn-confirm" ><button formType="submit" style="color:#00d000;">确定</button></view>
 </view>
</form>
Ps:::img_arr:为存放上传的多张图片的数组,使用for和自动换行显示出来
将本地图片上传js:
upimg: function () {
    console.log('上传图片');
    var that = this;
    if (that.data.img_arr == null) {
        console.log('null张');
        wx.chooseImage({
            count: 9,  //最多可以选择的图片张数,默认为9
            sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
            sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
            success: function (res) {
                console.log(res);
                that.setData({
                    img_arr: res.tempFilePaths     //concat
                });
            }
        })
    }
},
form表单提交,引用跳转:
formSumbmit: function (e) {
    console.log('对话框确认按钮点击事件');
    console.log(e);
    var that = this;
    var data = [];
    data.photo_info = e.detail.value.photo_info;
    data.timestamp = Date.parse(new Date()) / 1000;  //当前时间戳
    data.i = 0;
    that.upload(data);
},
ok,开始将文件上传服务器:
upload: function (e) {
    console.log('上传图片至服务器');
    var photo_info = e.photo_info;
    var timestamp = e.timestamp;
    var i = e.i;
    var that = this;
    var length = that.data.img_arr.length;
    //for (var i = 0; i < length; i++) {//循环遍历图片    //ps::这里也可以使用for循环方式一个个上传,但是因为网络等原因,不能很好地控制,故改用这种重新调用的方式来完成
        var openid = app.globalData.openid;
        wx.uploadFile({
            url: '',//自己的接口地址
            filePath: that.data.img_arr[i],
            name: 'name',
            formData:({//上传图片所要携带的参数
                openid: openid,
                photoInfo: photo_info,
                timestamp: timestamp,
                uploadName: 'name'   //上传name
            }),
        success: function (res) {
            console.log(res);
            if (res) {
                console.log("返回的参数信息" + res.data);
                wx.showToast({
                    title: '上传中...',
                    duration: 3000,
                    icon: 'loading'
                });
            }
        },
        complete:function(){
            console.log(i);
            i++;
            if(i == length){ //当图片传完时,停止调用
                console.log('成功');
                wx.showToast({
                    title: '上传成功!',
                    duration: 1500,
                    success: function(){
                        that.hideModal();
                    }
                });
            }else {
                e.photo_info = photo_info;
                e.timestamp = timestamp;  //当前时间戳
                e.i = i;
                that.upload(e);     //ps::这里也可以使用for循环方式一个个上传,但是因为网络等原因,不能很好地控制,故改用这种重新调用的方式来完成
            }
        }
    })
    //}
},
搞定
微信小程序:多张图片上传的更多相关文章
- 微信小程序多张图片上传
		
微信小程序上传图片每次只能上传一张,所有很多朋友就会问想要多张图片上传怎么办? 首先,我们来看一看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"& ...
 - 微信小程序 多图上传解决方案
		
为了使代码体积小 我这里将多图上传 封装到单独的一个js 页面的js调用他 我们看firhealth.js文件内容 // pages/home/home.js var upload = requir ...
 - 微信小程序实现图片上传,预览,删除
		
wxml: <view class='imgBox'> <image class='imgList' wx:for="{{imgs}}" wx:for-item= ...
 - 微信小程序wx.uploadFile 上传文件 的两个坑
		
fileUpload: function (tempFilePath) { var that = this;//坑1: this需要这么处理 wx.uploadFile({ url: url地址, / ...
 
随机推荐
- iOS应用的性能调试
			
1.Static Analysis 使用之前先清理一下数据:product-->Clean 可能遇到的问题: a.发现工程中有多个“User-facing text should use loc ...
 - Civil 3D 二次开发 事务
			
事务,一般是指要做的或所做的事情.在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit). 对于初学者来说,从字面上难以理解什么是事务.下面我试着通过讲述事务的作用及特性来帮 ...
 - Android 自定义ListView 修改数据
			
当我们修改了 自定义ListView,如何更新界面上的控件呢? 两种方法: 1 重新绑定adapter (不推荐) Adapter_InboundPO adapter =(Adapter_Inboun ...
 - Scrapy爬取伯乐在线文章
			
首先搭建虚拟环境,创建工程 scrapy startproject ArticleSpider cd ArticleSpider scrapy genspider jobbole blog.jobbo ...
 - pycharm修改注释颜色
			
原来的注释是红色的,看着跟报错似的.. 还有flask中html文件的注释,我修改了Django的注释颜色,flask也就改了 也可以直接点击下面的代码,哪里难看点哪里
 - TCP/IP 和 HTTP 的区别和联系是什么?
			
作者:车小胖链接:https://www.zhihu.com/question/38648948/answer/240006409来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...
 - iis express添加虚拟目录
			
在调试WEB时,还是使用IIS EXPRESS比较方便, 在IIS中,选择网站,右击,添加虚拟目录或者应用程序,就能添加虚拟目录了.. 在IIS EXPRESS中,添加虚拟目录如下 1.右击IIS E ...
 - 「HAOI2018」染色 解题报告
			
「HAOI2018」染色 是个套路题.. 考虑容斥 则恰好为\(k\)个颜色恰好为\(c\)次的贡献为 \[ \binom{m}{k}\sum_{i\ge k}(-1)^{i-k}\binom{m-k ...
 - 生产者&消费者.py
			
1.最简单的 --生产者消费者 send.py# !/usr/bin/env python3.5# -*- coding:utf-8 -*-# __author__ == 'LuoTianShuai' ...
 - 清理XFCE4卸载残留
			
apt-get remove xfce4 apt-get remove xfce4* apt-get autoremove apt-get autoclean apt-get clean --- 更新 ...