一.原因

  在微信通过电脑版和浏览器登录时,调用了微信上传的接口,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. 标准库bufio个人详解

    本文是我有通俗的语言写的如果有误请指出. 先看bufio官方文档 https://studygolang.com/pkgdoc文档地址 主要分三部分Reader.Writer.Scanner 分别是读 ...

  2. (三十六)golang--文件的基本操作

    文件程序中是以流的形式操作的. 流:数据在数据源(文件)和程序(内存)之间经历的路径: 输入流:数据从数据源到程序的路径: 输出流:数据从程序到数据源的路径: 常用的文件操作和函数: 1.常用的文件操 ...

  3. yum运行报错:File "/usr/bin/yum", line 30 except KeyboardInterrupt, e: ^SyntaxError: invalid syntax

    这是由于Python升级导致 备份Python 历史版本 [root@sdw1 autoconf]# ls /usr/bin/python* [root@sdw1 autoconf]# mv /usr ...

  4. Mybatis拦截器实现原理深度分析

    1.拦截器简介 拦截器可以说使我们平时开发经常用到的技术了,Spring AOP.Mybatis自定义插件原理都是基于拦截器实现的,而拦截器又是以动态代理为基础实现的,每个框架对拦截器的实现不完全相同 ...

  5. Rust中的RefCell和内部可变性

    RefCell Rust在编译阶段会进行严格的借用规则检查,规则如下: 在任意给定时间,要么只能有一个可变引用,要么只能有多个不可变引用. 引用必须总是有效. 即在编译阶段,当有一个不可变值时,不能可 ...

  6. 简单地认识一下 HTML

    简单复盘一下 HTML. 1.HTML 什么是 HTML?HTML 是 Hyper Text Markup Language 的简写,译成中文是「超文本标记语言」. 顾名思义,超文本,就是不止于文本, ...

  7. 堆模板(STL版)

    题目描述 如题,初始小根堆为空,我们需要支持以下3种操作: 操作1: 1 x 表示将x插入到堆中 操作2: 2 输出该小根堆内的最小数 操作3: 3 删除该小根堆内的最小数 输入输出格式 输入格式: ...

  8. SQL语句总结基础篇

    创建数据库 CREATE DATABASE 数据库名称; 删除数据库 DROP DATABASE 数据库名称; 创建新表 create table 表名(列 类型 ,列 类型 ,..); 根据已有的表 ...

  9. 点击查看大图滑动预览(h5,pc通用)

    点击预览大图并滑动观看,支持手机端和pc端,具体功能如下图: 一. touchTouch 的js和css 以及jquery依赖库 <link rel="stylesheet" ...

  10. Linux网络相关、firewalld和netfilter、netfilter5表5链介绍、iptables语法 使用介绍

    第7周第3次课(5月9日) 课程内容: 10.11 Linux网络相关10.12 firewalld和netfilter10.13 netfilter5表5链介绍10.14 iptables语法 扩展 ...