微信pc端和手机上传处理
2024-10-21 05:06:10
一.原因
在微信通过电脑版和浏览器登录时,调用了微信上传的接口,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
}
})
最新文章
- 分享MSSQL、MySql、Oracle的大数据批量导入方法及编程手法细节
- 学习SpringMVC——你们要的REST风格的CRUD来了
- CAD的输出成高清jpg图片
- 【Bugly技术干货】那些年我们用过的显示性能指标
- 保存字符串到手机SDcard为txt文件
- Memcached缓存在.Net 中的使用(memcacheddotnet)
- 详解Bootstrap面板组件
- SharePoint 2013 列表多表联合查询
- nhibernate操作sql2008数据库(添加数据失败)
- Apache Spark GraphX的特点
- JavaScript 获取Select标签选中的项
- Postfix+Amavisd-new+Spamassassin+ClamAV整合安装
- skynet源代码学习 - logger工程和服务
- C# 使用Parallel并行开发Parallel.For、Parallel.Foreach实例
- linux API函数大全
- 从头开始基于Maven搭建SpringMVC+Mybatis项目(1)
- 初学Python:面向对象总结
- windows清空电脑的DNS缓存
- cad.net 更改高版本填充交互方式为低版本样子
- 2017-2018-1 20155312《信息安全技术》实验二——Windows口令破解实验报告
热门文章
- 【前端】 在前端利用数学函数知识+box-shadow解波浪图形
- selenium处理隐藏元素的方法
- Unicode和Ascii的区别
- Python大神必须掌握的技能:多继承、super和MRO算法
- Gzip,BZip2,Lzo,Snappy总结
- eclipse导出jar(java打包导出jar)
- 使用Python编写打字训练小程序【华为云技术分享】
- Exponial
- 1、在aspx.cs后台Response.Write()跳转路径,打开新窗口
- 基于centos7.3 redhat7.3安装LAMP(php7.0 php7.1)生产环境实践