微信pc端和手机上传处理
一.原因
在微信通过电脑版和浏览器登录时,调用了微信上传的接口,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端和手机上传处理的更多相关文章
- 解决ios手机上传竖拍照片旋转90度问题
html5+canvas进行移动端手机照片上传时,发现ios手机上传竖拍照片会逆时针旋转90度,横拍照片无此问题:Android手机没这个问题. 因此解决这个问题的思路是:获取到照片拍摄的方向角,对非 ...
- 利用exif.js解决ios手机上传竖拍照片旋转90度问题
html5+canvas进行移动端手机照片上传时,发现ios手机上传竖拍照片会逆时针旋转90度,横拍照片无此问题:Android手机没这个问题. 因此解决这个问题的思路是:获取到照片拍摄的方向角,对非 ...
- 利用exif.js解决手机上传竖拍照片旋转90\180\270度问题
原文:https://blog.csdn.net/linlzk/article/details/48652635/ html5+canvas进行移动端手机照片上传时,发现ios手机上传竖拍照片会逆时针 ...
- 利用exif.js解决ios或Android手机上传竖拍照片旋转90度问题
html5+canvas进行移动端手机照片上传时,发现ios手机上传竖拍照片会逆时针旋转90度,横拍照片无此问题:Android手机没这个问题. 因此解决这个问题的思路是:获取到照片拍摄的方向角,对非 ...
- Android 本地tomcat服务器接收处理手机上传的数据之案例演示
上一篇:Android 本地tomcat服务器接收处理手机上传的数据之环境搭建 本篇基于上一篇搭建的服务器端环境,具体介绍Android真机上传数据到tomcat服务器的交互过程 场景:A ...
- Android端通过HttpURLConnection上传文件到服务器
Android端通过HttpURLConnection上传文件到服务器 一:实现原理 最近在做Android客户端的应用开发,涉及到要把图片上传到后台服务器中,自己选择了做Spring3 MVC HT ...
- 纯原生js移动端图片压缩上传插件
前段时间,同事又来咨询一个问题了,说手机端动不动拍照就好几M高清大图,上传服务器太慢,问问我有没有可以压缩图片并上传的js插件,当然手头上没有,别慌,我去网上搜一搜. 结果呢,呵呵...诶~又全是基于 ...
- web端、android端的文件上传
1.web端的文件上传. 这里是利用了第三方的jar包.这里所需要的jar包我已经上传到本博客的资源里了,以下是连接 http://download.csdn.net/detail/caihongsh ...
- Android端通过HttpURLConnection上传文件到server
Android端通过HttpURLConnection上传文件到server 一:实现原理 近期在做Androidclient的应用开发,涉及到要把图片上传到后台server中.自己选择了做Sprin ...
随机推荐
- MySQL通过自定义函数实现递归查询父级ID或者子级ID
背 景: 在MySQL中如果是有限的层次,比如我们事先如果可以确定这个树的最大深度, 那么所有节点为根的树的深度均不会超过树的最大深度,则我们可以直接通过left join来实现. 但很多时候我们是无 ...
- Clean Code 笔记 之 第四章 如何应用注释
继上一篇笔记之后,今天我们讨论一下 代码中是存在注释是否是一件好的事情. 在我们开发的过程中讲究“名副其实,见名识意”,这也往往是很多公司的要求,但是有了这些要求是不是我们的代码中如果存在注释是不是意 ...
- MySQL基础知识面试与答案
1.Mysql 的存储引擎,myisam和innodb的区别. 答: 1.MyISAM 是非事务的存储引擎,适合用于频繁查询的应用.表锁,不会出现死锁,适合小数据,小并发. 2.innodb是支持事务 ...
- SpringBoot之DispatcherServlet详解及源码解析
在使用SpringBoot之后,我们表面上已经无法直接看到DispatcherServlet的使用了.本篇文章,带大家从最初DispatcherServlet的使用开始到SpringBoot源码中Di ...
- 使用IDEA创建SpringMVC项目
作为一名从.NET转Java的小渣渣,之前都是听说Java配置复杂,今天算是见识到了.甚是怀念宇宙第一IDE VS和.NET高效的开发. 网上大多教程是基于Eclipse的,即使按照IDEA的教程做, ...
- c# 基于DataTable的Compute方法的扩展
DataTable.Compute(String, String) 方法 定义 命名空间:System.Data 程序集:System.Data.dll, netstandard.dll, Syste ...
- CentOS 7 Cobbler 安装
Cobbler介绍 Cobbler是一个Linux服务器快速网络安装的服务,而且在经过调整也可以支持网络安装windows. 使用python开发,小巧轻便(才15k行python代码),可以通过网络 ...
- 解惑Python模块学习,该如何着手操作...
Python模块 晚上和朋友聊天,说到公司要求精兵计划,全员都要有编程能力.然后C.Java.Python-对于零基础入门的,当然是选择Python的人较多了.可朋友说他只是看了简单的语法,可pyth ...
- SpringBoot使用注解(@value)读取properties(yml)文件中 配置信息
为了简化读取properties文件中的配置值,spring支持@value注解的方式来获取,这种方式大大简化了项目配置,提高业务中的灵活性. 1. 两种使用方法1)@Value("#{co ...
- js-编程练习题-输出年月日以及练习字符串分割,检索,转换整数(int)
这是在慕课网上看到的编程题-如有侵权,请联系本人删除. 当然:题是他们的,做题是我的...嘿嘿嘿 某班的成绩出来了,现在老师要把班级的成绩打印出来. 效果图: XXXX年XX月X日 星期X--班级总分 ...