一.原因

  在微信通过电脑版和浏览器登录时,调用了微信上传的接口,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("下载图片失败", {icon: 2, time: 3000, 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('上传中', {icon: 16, shade: 0.3, 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
}
})

微信pc端和手机上传处理的更多相关文章

  1. 解决ios手机上传竖拍照片旋转90度问题

    html5+canvas进行移动端手机照片上传时,发现ios手机上传竖拍照片会逆时针旋转90度,横拍照片无此问题:Android手机没这个问题. 因此解决这个问题的思路是:获取到照片拍摄的方向角,对非 ...

  2. 利用exif.js解决ios手机上传竖拍照片旋转90度问题

    html5+canvas进行移动端手机照片上传时,发现ios手机上传竖拍照片会逆时针旋转90度,横拍照片无此问题:Android手机没这个问题. 因此解决这个问题的思路是:获取到照片拍摄的方向角,对非 ...

  3. 利用exif.js解决手机上传竖拍照片旋转90\180\270度问题

    原文:https://blog.csdn.net/linlzk/article/details/48652635/ html5+canvas进行移动端手机照片上传时,发现ios手机上传竖拍照片会逆时针 ...

  4. 利用exif.js解决ios或Android手机上传竖拍照片旋转90度问题

    html5+canvas进行移动端手机照片上传时,发现ios手机上传竖拍照片会逆时针旋转90度,横拍照片无此问题:Android手机没这个问题. 因此解决这个问题的思路是:获取到照片拍摄的方向角,对非 ...

  5. Android 本地tomcat服务器接收处理手机上传的数据之案例演示

    上一篇:Android 本地tomcat服务器接收处理手机上传的数据之环境搭建     本篇基于上一篇搭建的服务器端环境,具体介绍Android真机上传数据到tomcat服务器的交互过程   场景:A ...

  6. Android端通过HttpURLConnection上传文件到服务器

    Android端通过HttpURLConnection上传文件到服务器 一:实现原理 最近在做Android客户端的应用开发,涉及到要把图片上传到后台服务器中,自己选择了做Spring3 MVC HT ...

  7. 纯原生js移动端图片压缩上传插件

    前段时间,同事又来咨询一个问题了,说手机端动不动拍照就好几M高清大图,上传服务器太慢,问问我有没有可以压缩图片并上传的js插件,当然手头上没有,别慌,我去网上搜一搜. 结果呢,呵呵...诶~又全是基于 ...

  8. web端、android端的文件上传

    1.web端的文件上传. 这里是利用了第三方的jar包.这里所需要的jar包我已经上传到本博客的资源里了,以下是连接 http://download.csdn.net/detail/caihongsh ...

  9. Android端通过HttpURLConnection上传文件到server

    Android端通过HttpURLConnection上传文件到server 一:实现原理 近期在做Androidclient的应用开发,涉及到要把图片上传到后台server中.自己选择了做Sprin ...

随机推荐

  1. 【论文阅读】Diverse Image-to-Image Translation via Disentangled Representations(ECCV2018 oral)

    目录 相关链接 方法亮点 相关工作 方法细节 实验结果 总结与收获 参考文献 相关链接: 论文:https://arxiv.org/abs/1808.00948 代码:https://github.c ...

  2. day 42 JavaScript 基础知识部分

    一. JavaScript存放位置 <script type="text/javascript" src="JavaScript文件路径">< ...

  3. .NET Core应用框架AA介绍(二)

    AA的开源地址 https://github.com/ChengLab/AAFrameWork AA框架是一个基础应用框架,是建立在众多大家熟知的流行工具之上并与之集成.比如:ASP.NET Core ...

  4. X86架构CPU常识(主频,外频,FSB,cpu位和字长,倍频系数,缓存,CPU扩展指令集,CPU内核和I/O工作电压,制造工艺,指令集,超流水线与超标量)

    1.主频 主频也叫时钟频率,单位是MHz,用来表示CPU的运算速度. CPU的主频=外频×倍频系数.很多人认为主频就决定着CPU的运行速度,这不仅是个片面的,而且对于服务器来讲,这个认识也出现了偏差. ...

  5. CA-RNN论文读取

    ***CA-RNN: Using Context-Aligned Recurrent Neural Networks for Modeling Sentence Similarity(CA-RNN:使 ...

  6. 2019-2020-1 20199304《Linux内核原理与分析》第九周作业

    第八章 进程的切换和系统的一般执行过程 知识点 1.进程调度的时机 1.1硬中断和软中断 中断是指在计算机执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而 ...

  7. adb adb monkey命令及介绍

    1.adb的组成部分 守护进程,客户端,服务器端`      2.Monkey程序是Google公司提供的一个压力和稳定性测试的工具 3.命令 命令 参数 功能 adb version   查看当前a ...

  8. CSS3 斑马条纹.html

    hvkhujluhijo hvkhujluhijo hvkhujluhijo hvkhujluhijo hvkhujluhijo <!DOCTYPE html> <html> ...

  9. AI:为你写诗,为你做不可能的事

    最近,一档全程高能的神仙节目,高调地杀入了我们的视野: 没错,就是撒贝宁主持,董卿.康辉等央视名嘴作为评审嘉宾,同时集齐央视"三大名嘴"同台的央视<主持人大赛>,这够不 ...

  10. 3分钟了解ServiceStage 应用智能化运维【华为云分享】

    [摘要] 微服务云应用平台(ServiceStage)是面向企业及开发者的一站式DevOps平台服务,支持基于微服务的应用开发.治理.部署及运维监控的全生命周期管理,并提供大规模容器集群管理及中间件服 ...