调微信jssdk接口base64上传七牛

记笔记,免忘记!

真是哪里都需要上传,首先感谢网上的各位大佬的分享!

首先根据微信js-sdk说明文档 将相关准备工作做好。

//引用相关js
<script src="../js/jquery-2.1.4.min.js"></script>
<script src="https://res.wx.qq.com/open/js/jweixin-1.4.0.js"></script>

因为要兼容微信和浏览器上传

//判断是否微信
var ua = navigator.userAgent.toLowerCase(),app = navigator.appVersion;
var isWeixin = ua.indexOf('micromessenger') != -1;
var isAndroid = ua.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //Android
var isIOS = !!ua.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端

单图上传:【多图类似】

 if(isWeixin){
           //微信上传
           $(document).on("click",".container",function () {
               var self = this;
               wxUploadOneimg($(self).find("img"),'{$uptoken}');
           });
       }else {
           //七牛上传
           Qiniu();
    });
//微信单图上传 img 图片 uptoken
function wxUploadOneimg(img,uptoken) {
    wx.chooseImage({
        count: 1, // 单词最多选几张图片
        sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
        sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
        success: function (res) {       //选择图片成功
            $.showLoading();
            //成功后开始上传图片
            wx.getLocalImgData({  //获取图片base64
                localId: res.localIds[0], // 图片的localID
                success: function (res) {
                    var localData = '';
                    if (window.__wxjs_is_wkwebview) { // 如果是IOS,需要去掉前缀
                        localData = res.localData.replace(/^.*?base64,/, '');
                    }else {
                        localData = res.localData;
                    }
                    var str = '0123456789abcdefghijklmnopqrstuvwxyz',
                        n = str.length,
                        key = "",
                        i = 1;
                    while (i < n) {
                        var a = Math.floor(n * Math.random());
                        key += str.charAt(a);
                        i++;
                    }
                    $.ajax({
                        headers: {
                            "Content-Type" : "application/octet-stream" ,
                            "Authorization" : "UpToken "+ uptoken
                        },
                        url : "https://upload.qiniup.com/putb64/-1/key/" + Qiniu.URLSafeBase64Encode('yourname/' + key + '.png'),
                        type : "post",
                        dataType: "json",
                        data : localData,
                        success : function (result) {
                            img.data("key", result.key);
                            img.attr("src",'https://qiniu.域名.com/'+result.key);
                            img.parents(".pick").attr("data-key",result.key);
                        },
                        error: function () {
                            $.toast("上传失败", "forbidden");
                        }
                    });
                    $.hideLoading();
                }
            });
        }
    });
}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值