微信JSSDK上传多图预览,点击查看大图

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1,user-scalable=no">    <meta name="apple-mobile-web-app-capable" content="yes">    <meta name="apple-mobile-web-app-status-bar-style" content="black">    <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />    <meta http-equiv="Pragma" content="no-cache" />    <meta http-equiv="Expires" content="0" />    <script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>    <script src="../js/base/jquery-3.1.1.min.js"></script>    <script src="../js/base/src.js"></script>    <script src="../js/base/http.js"></script>    <title>Title</title>    <style>        *{margin: 0;padding: 0}        p{            padding: 20px;            background: red;            color: #fff;            text-align: center;            font-size: 14px;        }        li{            font-style: normal;            display: inline-block;            border:1px solid blue;            margin: 10px;        }        img{height: 200px}    </style></head><body><div>    <p>上传</p>    <div class="box"></div></div><script>    // AJAX请求微信配置    function getWxData() {        var wxUrl=window.location.href;        var url = http + "wx/offAct/jssdkCon";        var data={            "url":wxUrl,            "org":"xn"        };        // console.log(wxUrl)        httpHelper.post(url, data, function(data){            var appId = data[‘data‘]["appId"];            var timestamp = data[‘data‘][‘timestamp‘];            var nonceStr = data["data"][‘nonceStr‘];            var signature = data[‘data‘][‘signature‘];            var jsApiList = data[‘data‘][‘jsApiList‘];            var beta=data[‘data‘][‘beta‘];            var debug=data[‘data‘][‘debug‘];            // console.log(data)            // alert(JSON.stringify(data))            wx.config({                beta: beta,// 必须这么写,否则wx.invoke调用形式的jsapi会有问题                debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。                appId: appId, // 必填,企业微信的corpID                timestamp: timestamp, // 必填,生成签名的时间戳                nonceStr: nonceStr, // 必填,生成签名的随机串                signature: signature,// 必填,签名,见附录1                jsApiList:jsApiList ,// 必填,需要使用的JS接口列表,所有JS接口列表见附录2            });        });    }    getWxData();//微信

// 上传预览多张图片   $(‘p‘).on(‘click‘,function () {       $(‘box‘).empty()       var that = $(this),result1;       wx.chooseImage({           count: 9,           needResult: 1,           sizeType: [‘compressed‘], // 可以指定是原图还是压缩图,默认二者都有           sourceType: [‘camera‘,‘album‘], // 可以指定来源是相册还是相机,默认二者都有           success: function (data) {               var localIds = data.localIds; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片               for (var i = 0; i < localIds.length; i++) {                   wx.uploadImage({                       localId: localIds[i],                       success: function (res) {                          result1 = res.serverId; // 返回图片的服务器端ID                           // 判断设备                           var xt = navigator.userAgent;                           if(xt.indexOf("OS") > -1){                               // ios苹果                              for(let j=0;j<localIds.length;j++){                                  wx.getLocalImgData({                                      localId: localIds[j], // 图片的localID                                      success: function (res) {                                          localIds = res.localData; // localData是图片的base64数据,可以用img标签显示                                          var html="",ht="",ml="";                                          if(localIds==1){                                              ht="<li><img src=‘"+res.localData+"‘ alt=‘‘></li>"                                          }else {                                              ml+="<li><img src=‘"+res.localData+"‘ alt=‘‘></li>"                                          }                                          html+=ht+ml;                                          $(‘.box‘).append(html);                                          funcReadImgInfo();//点击查看大图                                      },                                      fail: function (res) {                                          // alert("请联系开发人员")                                          alert(JSON.stringify(res))                                      }                                  });                              }                           }else {                               // 安卓android                               var html,ht,ml;                               if(localIds==1){                                   ht="<li><img src=‘"+res.serverId+"‘ ></li>"                               }else {                                   ml+="<li><img src=‘"+res.serverId+"‘></li>"                               }                               html+=ht+ml                               $(‘.box‘).append(html);                               funcReadImgInfo()//点击查看大图                           }                       }                   });               }           },           fail: function (res) {               alert("请联系开发人员")               //alert(JSON.stringify(res))           }       });   })

// 最后传给后台服务器返回的ID -->result1    //点击查看大图    function funcReadImgInfo() {        var imgs = [];        var imgObj = $(".box img");//这里改成相应的对象        for (var i = 0; i < imgObj.length; i++) {            imgs.push(imgObj.eq(i).attr(‘src‘));            imgObj.eq(i).click(function () {                var nowImgurl = $(this).attr(‘src‘);                //alert(nowImgurl)                WeixinJSBridge.invoke("imagePreview", {                    "urls": imgs,                    "current": nowImgurl                });            });        }    }</script></body></html>

原文地址:https://www.cnblogs.com/qianxiaojing/p/9685895.html

时间: 2024-10-10 09:17:10

微信JSSDK上传多图预览,点击查看大图的相关文章

【Android源码解析】--选择多张图片上传多图预览

最近做了选择多图并且上传服务器,在网上找了一些demo,适当的做了一下调整,用过了不能忘记,记下来以后还能多看看,本人觉得自己的博客有些渣渣,还希望大家不要介意啊,哪里有错误希望大家及时指正. 好了下面具体的分析一下:(想要做出功能,需求分析是必不可少的,需求.逻辑弄懂了再上手写代码,思路会很清晰的) 1.多图上传首先得选择图片(这里项目需求是既可以拍照上传也可以从相册中选择) 2.拍照上传很简单了网上也有很多例子,调用照相机,返回uri,获取图片 3.从相册中选择图片 3.1 获取手机中的所有

文件上传之图片预览

一.业界现状分析 有时候我们需要在上传图片之前为用户提供图片预览的功能,HTML5规范出来之前,由于缺少原生的File API支持,我们需要借助Flash或者浏览器插件来满足这种需求.有了HTML5,我们可使用URL或者FileReader对象实现预览功能. 二.应用场景 图片分享类的应用,如Flickr,Facebook.相册应用,如:QQ相册. 虽然139邮箱没有合适的应用场景,但是可将技术预研的成果作为技术储备,好东西总有用得着的时候. 三.编码实现 方式一:window.URL (1).

2016/4/19 ①单个文件上传 ②上传图片后 预览图片

1,f1.php <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <!-- 作业:在网上找上传图片预览的代码 上传服务器 再预览--> <form action="f1chuli.php&q

confluence上传文件附件预览乱码问题(linux服务器安装字体操作)

在confluence上传excel文件,预览时发现乱码问题主要是因为再上传文件的时候一般是Windows下的文件上传,而预览的时候,是linux下的环境,由于linux下没有微软字体,所以预览的时候无法识别文档字体,所以才会出现乱码.还比如某个业务有个功能生成图片,结果图片里的字全变空格了,这也是服务器上没相应的字库造成的.解决办法:在服务器上安装中文字体.操作方法如下: 1)先安装想要的字体, 如楷体等, 从本机"c盘->Windows-Fonts"文件夹里复制simkai字

关于confluence上传文件附件预览查看时出现乱码的问题解决办法

在confluence上传excel文件,预览时发现乱码问题主要是因为再上传文件的时候一般是Windows下的文件上传,而预览的时候,是linux下的环境,由于linux下没有微软字体,所以预览的时候无法识别文档字体,所以才会出现乱码.还比如某个业务有个功能生成图片,结果图片里的字全变空格了,这也是服务器上没相应的字库造成的. 1.解决办法:在服务器上安装中文字体.操作方法如下: 1)先安装想要的字体, 如楷体等, 从本机"c盘->Windows-Fonts"文件夹里复制simk

input 文件上传实现本地预览

上传图片 本地预览 获取图片大小 上传视频 本地预览 获取视频 duration 视频大小 图片上传 主要涉及内容 input accept filesList URL.createObjectURL() URL.revokeObjectURL() input file <label for='upload'></label> // ::before :: after 用于扩展可点击区域 <input type="file" id="upload

图片上传前的预览(PHP)

1.先创建一个file表单域,我们需要用它来浏览本地文件.<form name="form1" id="form1" method="post" action="upload.php"><input type="file" name="file1" id="file1" /></form>2.试下效果: 判断文件类型:当用户选择了一

调用微信Js-SDK上传、预览图片

$(document).ready(function(){ var url = location.href.split('#')[0]; $.get(rootPath + "/wechat/member/user/getWechatConfig?url=" + url,"",function(data){ wx.config({ debug: false, appId: data.appId, nonceStr: data.nonceStr, signature:

web 图片上传实现本地预览

前言: 刚成为码农不久,第一次工作中接触图片上传功能,说到图片上传,大多数程序员可能都是先上传服务器,再获取路径.如果用户多长更改图片,服务器会产生许多垃圾文件.怎样用js实现本地预览.今天特意抽空百度研究了一下. 在说上传之前先说说如何替换or美化浏览器自带的简陋上传按钮(自定义自己的上传按钮 如:img): 1.将自定义上传按钮上方添加 input file 框,实现input实现透明处理. 2.对自定义上传按钮添加事件.隐藏真正input框.用事件来触发: function imgBtn(