vue 微信上传图片接口

<template>
    <div class="uploadCont">
        <ul class="showImage">
            <li @click="chooseImage">
                <img src="../assets/images/tu_04.jpg"/>
            </li>
            <li @click="previewImage(saveImages.previewImageList[index])"
                v-for="(item,index) in saveImages.previewThumbList">
                <img :src="item"/>
                <i class="icon iconfont icon-shanchu remove" @click.stop @click="remove(index)"></i>
            </li>
        </ul>
    </div>
</template>

js

<script>
    var wx = require('weixin-js-sdk');
    export default {
        data() {
            return {
                userCode: localStorage.userCode || '',//用户code
                images: {
                    localId: [], //已选择的本地图片
                    serverId: [] //微信服务器返回的mediaId
                },
                saveImages: {
                    previewImageList: [], //预览大图数组,
                    previewThumbList: [], //预览缩略图数组
                    saveImageList: [], //预览大图数组//保存图片
                },
                uploadPath: '' //图片上传的路径:为空时,默认下载到当前项目的/mcupload路径下
            }
        },
        methods: {
            /**
             * 选择图片
             */
            chooseImage() {
                let _this = this
                wx.chooseImage({
                    success: function (res) {
                        //res.localIds 是一个数组 保存了用户一次性选择的所有图片的信息 
                        _this.images.localId = res.localIds;//把图片的路径保存在images[localId]中--图片本地的id信息,用于上传图片到微信浏览器时使用
                        //alert('已选择 ' + res.localIds.length + '张图片 ');
                        //===上传
                        let length = res.localIds.length
                        if (length == 0) {
                            _this.$alert("请选择图片");
                            return;
                        }
                        var i = 0

                        _this.images.serverId = []

                        function upload() {
                            wx.uploadImage({
                                localId: _this.images.localId[i],
                                success: function (res) {
                                    i++;
                                    _this.images.serverId.push(res.serverId);
                                    //下载刚刚上传的图片
                                    JssdkService.getMediaByUser(res.serverId, _this.uploadPath, _this.userCode, function (res) {
                                        //  alert(res.substr(45));
                                        var path = res.responseParam1.split("mecwish")[1];
                                        var path_thumb = path.replace("/mcupload/", "/mcupload/_thumb/");
                                        if (path != null && path.length != 0) {
                                            _this.saveImages.saveImageList.push(path);
                                            _this.saveImages.previewImageList.push(window.location.protocol + "//" + window.location.host + '/mecwish' + path);//将图片上传的位置
                                            _this.saveImages.previewThumbList.push(window.location.protocol + "//" + window.location.host + '/mecwish' + path_thumb);//将缩略图上传的位置
                                        }
                                    })

                                    if (i < length) {
                                        upload();
                                    }
                                },
                                fail: function (res) {
                                    alert(JSON.stringify(res));
                                }
                            });
                            _this.$emit('saveImages', _this.saveImages.saveImageList)
                        }

                        upload();
                    }
                });
            },
            //预览图片
            previewImage(currentImg) {
                let _this = this
                wx.previewImage({
                    current: currentImg,//当前图片
                    urls: _this.saveImages.previewImageList
                });
            },
          //删除图片,数据库里没删除
            remove(index) {
                this.$emit('removed', index)
                this.saveImages.saveImageList.splice(index, 1)
                this.saveImages.previewImageList.splice(index, 1)
                this.saveImages.previewThumbList.splice(index, 1)
            }
        },
        created() {
            let _this = this;
            let url = location.href.split('#')[0];
            let userCode = _this.userCode;
            _this.$emit('saveImages', _this.saveImages.saveImageList)
            JssdkService.getSignatureByUser(url, userCode, function (res) {
                if (res.responseCode != 0) {
                    _this.$alert(res.responseText);
                } else {
                    let signatureData = JSON.parse(res.responseText);
                    let timestamp = signatureData.timestamp;
                    let nonceStr = signatureData.nonceStr;
                    let signature = signatureData.signature;
                    let appId = res.responseParam1;
                    wx.config({
                        debug: false,
                        appId: appId,
                        timestamp: timestamp,
                        nonceStr: nonceStr,
                        signature: signature,
                        jsApiList: [
                            'checkJsApi',
                            'onMenuShareAppMessage',
                            'chooseImage',
                            'previewImage',
                            'uploadImage',
                            'downloadImage'
                        ]
                    });

                    wx.error(function (res) {
                        this.$alert(res.errMsg);
                    });
                }

            });

        }
    }
</script>

css

<style scoped>
    .uploadCont .showImage {
        display: flex;
        list-style: none;
        flex-wrap: wrap;
        margin: 7px 0 5px 10px;
    }

    .uploadCont .showImage li {
        position: relative;
        width: 28vw;
        height: 28vw;
        list-style: none;
        /*background: #f00;*/
        margin: 5px 2vw 7px 0;
    }

    .uploadCont .showImage .remove {
        z-index: 11;
        position: absolute;
        top: -14px;
        right: -20px;
        font-size: 26px
    }

    .uploadCont .showImage img {
        width: 28vw;
        height: 28vw;
    }
</style>
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343

推荐阅读更多精彩内容

  • jqweui 加微信图片上传接口实现图片上传 jqweui简介 jQuery WeUI 是专为微信公众账号开发而设...
    香瓜J阅读 5,207评论 0 2
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,421评论 1 45
  • 我翻开《圣经》 遵照神的旨义 用心去体会那 善与恶的边缘 美与丑的界线 用心去察觉这 真诚与同虚假 光明和其黑暗 ...
    箛篁子阅读 234评论 2 14
  • 总有一个人住在你心里 无论你为他流了多少眼泪 你还是会喜欢他 所有的难过和委屈 都会在见面后的一个...
    简单就幸福阅读 208评论 2 2
  • 中午,没收到他的消息,是忙去了?没信号?还是回家了?不会是要悄悄跑这来吧? 两小时过去了,还是没有,应该是悄悄跑这...
    顽皮小妖阅读 232评论 0 0