加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

微信pc端和手机上传处理

发布时间:2020-12-16 03:00:32 所属栏目:百科 来源:网络整理
导读:一.原因 在微信通过电脑版和浏览器登录时,调用了微信上传的接口,wx. getLocalImgData 或返回失败。 没办法,只有处理当电脑上传时,使用ajaxuploadfile上传。 二.方法 function upload_weixin_pic(e) { e =e|| {}; e = { id:e.id ||‘get_pic_url‘ ,hight

一.原因

  在微信通过电脑版和浏览器登录时,调用了微信上传的接口,wx.getLocalImgData或返回失败。

  没办法,只有处理当电脑上传时,使用ajaxuploadfile上传。

二.方法

function upload_weixin_pic(e) {
    e=e||{};
    e={
        id:e.id||‘get_pic_url‘,hight:e.hight||0,width:e.width||0,chooseImage:function () {
            wx.chooseImage({
                count: 1,sizeType: [‘original‘,‘compressed‘],// original 原图,compressed 压缩图,默认二者都有
                sourceType: [‘album‘,‘camera‘],// album 从相册选图,camera 使用相机,默认二者都有
                success: function (res) {
                    e.getLocalImgData(res);
                },fail: function () {
                    //layer.alert("选择图片失败",{icon: 2,time: 3000,title: "失败"});
                    openTheFile(e);
                },cancel: function (res) {
                }
            })
        },getLocalImgData:function (res) {
            layer.msg(‘上传中‘,{icon: 16,shade: 0.3,time: 99990000});
            wx.getLocalImgData({
                localId: res.localIds[0],// 图片的localID
                success: function (res) {
                    e.getBase64(res);
                },fail: function (v) {
                    layer.closeAll();
                    /*if(v.errMsg.indexOf(‘getLocalImgData‘)>-1){
                        openTheFile(e);
                    }else{
                        console.info(e);
                        layer.alert("下载图片失败",title: "失败"});
                    }*/
                    openTheFile(e);
                },complete: function (res) {

                }
            });
        },getBase64:function (res) {
            $.post("/Public/weixin_base64",{base64: res.localData,hight:e.hight,width:e.width},function (path) {
                layer.closeAll();
                e.success(path);
            })
        },success:e.success|| function (path) {
            //path
        }
    }

    if(isMobile()){
        e.chooseImage();
    }else{
        openTheFile(e);
    }
}
var previewImages_e={};
function openTheFile(e) {
    if($("#"+e.id).length == 0){
        var input=$(‘<input type="file" style="display: none" name="‘+e.id+‘" id="‘+e.id+‘" >‘);
        input.attr("onchange",‘previewImages()‘);
        $("body").append(input);
    }
    previewImages_e=e;
    $("#"+e.id).click();
}
function previewImages() {
    var e=previewImages_e||{};
    var lay = layer.msg(‘上传中‘,time: 99990000});
    $.ajaxFileUpload({
        url: "/Public/UploadPic",secureuri: false,fileElementId: e.id,type: "post",data:{
            hight:e.hight,width:e.width
        },dataType: "json",async: false,success: function (data,status) {
            layer.close(lay)
            if (data.code == 0) {
                e.success(data.url)
            } else {
                layer.alert(data.msg,{icon: 2})
            }
        },error: function (data,status,e) {
            layer.close(lay);
            console.info(e)
            layer.alert("上传图片异常,请选择新的图片!")
        }
    })
}

三.调用方法

  这个方法我使用了layui、ajaxfileupload插件

  调用时

  可以直接调用方法名

upload_weixin_pic()

?

//也可以

      upload_weixin_pic({
                success:function (path) {
                    //path
                }
            })

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读