微信小程序上传图片

/**
             * 选择图片上传服务器
             * num 允许传几张
             */
            const uploadImg = function(num, onlyCam = false) {
                return new Promise((resolve, reject) => {

                    wx.chooseImage({
                        count: num,
                        sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有 'original',
                        sourceType: onlyCam ? ['camera'] : ['album', 'camera'],
                        success: function(pic) {
                            let g_data = getApp()
                            let address = g_data.server_address;
                            let upImg = []
                            wx.showLoading({
                                title: '上传中',
                                mask: true,
                                icon: 'none',
                            })
                            pic.tempFilePaths.forEach((list, index) => {
                                upImg[index] = new Promise((resSing, rejSing) => {
                                    wx.uploadFile({
                                        url: `${address}/WxFile/UploadImg`,
                                        filePath: list,
                                        header: {
                                            "Content-Type": "multipart/form-data"
                                        },

                                        name: 'Image',
                                        success: function(res) {
                                            let res_data = res.data;
                                            let brand = g_data.globalData.system_info.brand;
                                            if(brand == 'iPhone') {
                                                console.log('苹果:', res_data)
                                                res_data = res_data.replace(/\\/g, '');
                                            } else {
                                                console.log('其他::', res_data)
                                            }
                                            res_data = res_data.substring(res_data.indexOf('{'), res_data.lastIndexOf('}') + 1);
                                            res_data = JSON.parse(res_data);
                                            if(res_data.Stat != 1) {
                                                return rejSing()
                                            }
                                            resSing(res_data.Data)
                                        },
                                        fail: function(err) {
                                            rejSing(err)
                                        }
                                    });
                                })
                            })
                            //上传完图片才reject数据  (resAll返回的是一个数组)
                            Promise.all(upImg).then((resAll) => {
                                wx.hideLoading()
                                resolve(resAll)
                            }).catch((errAll) => {
                                wx.hideLoading()
                                wx.showToast({
                                    title: '上传失败',
                                    icon: 'none'
                                })
                                reject()
                            })
                        },
                        fail: function(err) {
                            if(err.errMsg === "chooseImage:fail cancel") {
                                reject()
                            } else {
                                wx.showToast({
                                    title: '上传失败',
                                    icon: 'none'
                                })
                                reject()
                            }

                        }
                    });
                })
            }
            // 图片预览 ind:当前浏览索引   list:需要预览的图片数组
            const picBroser = function(ind, list) {
                wx.previewImage({
                    current: ind, // 当前显示图片的http链接
                    urls: list // 需要预览的图片http链接列表
                })
            }

 

posted @ 2019-03-19 11:47  雨筠  阅读(259)  评论(0编辑  收藏  举报