微信sdk 图片上传 两种方法 上传一张显示一张 并附带微信图片放大功能和删除功能
html
<!--上传图片-->
<div class="upload-mod">
<div class="up-box" id="upImg">
<img src="__HOME__/images/03-02-01.png " alt="" class="btn_dianji"/>
</div>
</div>
function.php
/**
* 直接生成微信jssdk_config
* @echo string $jssdk Jssdk_config
* @author 5heAtMin9 <sheatming@foxmail.com>
*/ function wx_jssdk_config($debug='true'){
$getSignPackage = wx_getSignPackage();
$jssdk = '<script src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>';
$jssdk .= '<script>
wx.config({
debug: '.$debug.',
appId: "'.$getSignPackage['appId'].'",
timestamp: "'.$getSignPackage['timestamp'].'",
nonceStr: "'.$getSignPackage['nonceStr'].'",
signature: "'.$getSignPackage['signature'].'",
jsApiList: ["checkJsApi","onMenuShareTimeline","onMenuShareAppMessage","onMenuShareQQ", "onMenuShareWeibo","onMenuShareQZone","hideMenuItems","showMenuItems","hideAllNonBaseMenuItem","showAllNonBaseMenuItem","translateVoice","startRecord","stopRecord","onVoiceRecordEnd","playVoice","onVoicePlayEnd","pauseVoice","stopVoice","uploadVoice","downloadVoice","chooseImage","previewImage","uploadImage","downloadImage","getNetworkType","openLocation","getLocation","hideOptionMenu","showOptionMenu","closeWindow","scanQRCode","chooseWXPay","openProductSpecificView","addCard","chooseCard","openCard"],
});
</script>';
echo $jssdk;
}
js 此图片上传功能在华为手机号有点bug 比如我一次上传9张图片,但是只给显示1到2张图片
{:wx_jssdk_config("false")}
<script>
var i=0;
var arr_pic = [];
var arr_pic_2 = [];
$('.btn_dianji').click(function(){
if(i<10){
var html = "";
wx.chooseImage({
count: 9-i,
success: function (res) {
var localIds = res.localIds;
syncUpload(localIds);
}
});
var syncUpload = function(localIds){
var localId = localIds.shift();
wx.uploadImage({
localId: localId,
isShowProgressTips: 1,
success: function (res) {
i++;
var serverId = res.serverId; // 返回图片的服务器端ID
arr_pic.push(localId);
arr_pic_2.push(serverId);
//其他对serverId做处理的代码
var $dom = $(html);
paixu();
if(localIds.length > 0){
syncUpload(localIds);
}
if(i >=9){
$("#upImg").hide();
$("#upVideo").hide();
}
}
});
};
}
});
/*处理图片上传排序问题*/
function paixu(){
var m = arr_pic.length;
var html = "";
for(var k= m-1 ;k>-1;k--){
html += '<div class="up-box " ><img src="'+arr_pic[k]+'" class="img"/><div class="close"><img src="__HOME__/images/close.png" onclick="del_img(this)"> </div><input type="hidden" name="image[]" value="'+arr_pic_2[k]+'"></div>';
//m--;
}
var $dom = $(html);
arr_pic = [];
arr_pic_2 = [];
$("#upImg").before($dom);
}
/*图片删除*/
function del_img(dom){
$(dom).parents('.up-box').remove();
i--;
if(i < 9){
$("#upImg").show();
if($("#upPreview").is(":hidden")){
$("#upVideo").show();
}
}
}
/*调用微信预览图片的方法*/
$('.upload-mod').on("click",".up-box .img",function(){
var nowImgurl = $(this).attr("src");
var imgs = [];
var imgObj = $(".up-box .img");//这里改成相应的对象
$.each(imgObj,function(index,el){
imgs.push(imgObj.eq(index).attr("src"));
});
wx.ready(function(){
wx.previewImage({
current: nowImgurl, // 当前显示图片的http链接
urls: imgs // 需要预览的图片http链接列表
});
});
})
</script>
js 第二个方法 上传一张显示一张图片 暂无bug
{:wx_jssdk_config("false")}
<script>
var i=0;
$('#upImg').click(function(){
if(i<10){
var html = '';
wx.chooseImage({
count: 9-i,
success: function (res) {
var localIds = res.localIds;
syncUpload(localIds);
}
});
var syncUpload = function(localIds){
var localId = localIds.shift();
wx.uploadImage({
localId: localId,
isShowProgressTips: 1,
success: function (res) {
i++;
// alert(localIds.length);
var serverId = res.serverId; // 返回图片的服务器端ID
html ='';
html += '<div class="up-box " ><img src="'+localId+'" class="img"/><div class="close"><img src="__HOME__/images/close.png" onclick="del_img(this)"> </div><input type="hidden" name="image[]" value="'+serverId+'"></div>';
//其他对serverId做处理的代码
var $dom = $(html);
$("#upImg").before($dom);
if(localIds.length > 0){
setTimeout(function(){
syncUpload(localIds);
},500);
}
if(i > 8){
$("#upImg").hide();
}
}
});
};
}
});
</script>
<script>
/*图片删除*/
function del_img(dom){
$(dom).parents('.up-box').remove();
i--;
if(i < 6){
$("#upImg").show();
}
}
/*调用微信预览图片的方法*/
$('.upload-mod').on("click",".up-box .img",function(){
var nowImgurl = $(this).attr("src");
var imgs = [];
var imgObj = $(".up-box .img");//这里改成相应的对象
$.each(imgObj,function(index,el){
imgs.push(imgObj.eq(index).attr("src"));
});
wx.ready(function(){
wx.previewImage({
current: nowImgurl, // 当前显示图片的http链接
urls: imgs // 需要预览的图片http链接列表
});
});
})
</script>
微信sdk 图片上传 两种方法 上传一张显示一张 并附带微信图片放大功能和删除功能的更多相关文章
- 两种方法上传本地文件到github
https://www.jianshu.com/p/c70ca3a02087 自从使用github以来,一直都是在github网站在线上传文件到仓库中,但是有时因为网络或者电脑的原因上传失败.最重要的 ...
- 两种方法上传本地文件到github(转)
自从使用github以来,一直都是在github网站在线上传文件到仓库中,但是有时因为网络或者电脑的原因上传失败.最重要的原因是我习惯本地编辑,完成以后再一起上传github.看过了几个教程,总结出最 ...
- 两种方法将oracle数据库中的一张表的数据导入到另外一个oracle数据库中
oracle数据库实现一张表的数据导入到另外一个数据库的表中的方法有很多,在这介绍两个. 第一种,把oracle查询的数据导出为sql文件,执行sql文件里的insert语句,如下: 第一步,导出sq ...
- MFC上显示摄像头JPEG图片数据的两种方法
其一是借助opencv,其二是利用流对象. 方法一: CvMat *mat; ,,CV_8UC1); ,,CV_8UC1,JPEGBuf); /*初始化矩阵信息头,这里的JPEGBuf就是JPEG图像 ...
- QT 实现图片旋转的两种方法
第一种方案 使用 QPixmap 的 transformed 函数来实现旋转,这个函数默认是以图片中心为旋转点,不能设置旋转的中心点,使用如下: QMatrix matrix; matrix.rota ...
- 窗体图片背景(两种方法:设置Brush.Bitmap指向图片,别的控件也可以这样)
var Bitmap: TBitmap; procedure TForm1.FormCreate(Sender: TObject); begin Bitmap := TBitmap.Creat ...
- 【Qt】实现程序重启的两种方法
Qt5/PyQt5 实现程序重启的两种方法 前言 最近在写一个开源项目,需要实现一个程序自动重启的功能.尝试了好几种方式,效果均不太理想. 一开始的实现思路是,记为思路一吧.大概就是写一些 shell ...
- WCF生成客户端代理对象的两种方法的解释
最近在封装WCF,有一些很好的实践就记录下来,大家可以放心使用,所有代码都已经调试过.如果有高手可以大家探讨一下. 在WCF中有两种不同的方法可以用于创建客户端服务对象,他们分别为: 1. 代理构造法 ...
- GitHub常用上传文件的两种方法 附带常见的问题及Git安装教程
从早上下课到现在一直在琢磨如何给Github下载本地文件,中午饭都没吃.还好是解决了,感觉挺有成就感的.O(∩_∩)O哈哈~ 好哒 闲话不说,说重点. 一.git的安装 百度云:http://pan. ...
随机推荐
- iOS NSDictionary 转Json 去掉换行去掉空格
//dic 转json 如果用系统自带的会出现空格. + (NSString *)returnJSONStringWithDictionary:(NSDictionary *)dictionary{ ...
- String类源码解析
1. String是使用char[]数组来存储的,并且String值在创建之后就不可以改变了.char[]数组的定义为: /** The value is used for character sto ...
- C# System.IO.StreamWriter
实现一个 TextWriter,使其以一种特定的编码向流中写入字符. using System; using System.Collections.Generic; using System.Linq ...
- PowerShell 显示气球提示框 2
https://www.itninja.com/blog/view/reboot-required-toast-notifications-for-windows-machines [void][Sy ...
- Linux学习必备
17,继往开来 实践是检验真理的唯一标准! ---运维技术组----mvpbang #开源代码 https://github.com/ #目前最受欢迎的 https://gitee.com/ ...
- maven error: element dependency can not have character children
就是Mavn pom.xml的解析错误,因为dependency这个标签中有不可见的垃圾字符,解决方法就是删掉重新打字进去就可以了. references: https://stackoverflow ...
- CentOS 6.5 x64下查看服务版本
1.查看服务是否是64位 [root@Yimmei ~]# getconf LONG_BIT 642.查看服务器版本信息 [root@Yimmei ~]# lsb_release -a LSB Ver ...
- MySQL server has gone away 的两个最常见的可能性
[背景] 今天测试同学反馈他们docker中的测试库时不时就就报“MySQL server has gone away”,事态之紧急搞的我都有点怕了(像我这么成熟稳重 的DBA怎么有可能怕呢): 第一 ...
- Mobile 抓包,代理
Mobile代理,抓包工具 Fiddler 下载链接, 适用于Win平台.免费: Charles, 下载链接, 使用与MAC平台,收费,有30天的免费使用期,重新下载安装可以再次获得30天的免费使用时 ...
- [转]kindeditor隐藏上传图片框网络图片或本地上传的功能
原文地址:http://www.lingchenliang.com/post/154.html kindeditor富文本编辑器点击上传图片按钮,在弹出的窗口中去掉上传网络图片的功能,只留下本地上传, ...