🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
页面 ~~~ <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> <script src="js/jquery-3.2.0.min.js"></script> <script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script> <script> <% java.util.Map<String,String> map = (java.util.Map)request.getAttribute("map"); String nonceStr = map.get("nonceStr"); String timestamp = map.get("timestamp"); String signature = map.get("signature"); %> wx.config({ debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: 'wxbf9210646fd3bb89', // 必填,公众号的唯一标识 timestamp:<%=timestamp%>, // 必填,生成签名的时间戳 nonceStr: '<%=nonceStr%>', // 必填,生成签名的随机串 signature: '<%=signature%>',// 必填,签名 jsApiList: ['chooseImage'] // 必填,需要使用的JS接口列表 }); function choosefile() { wx.chooseImage({ count: 2, // 默认9 sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有 sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有 success: function (res) { var localIds = res.localIds; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片 for(var i=0; i<localIds.length;i++) { $("#imgs").append('<img src="'+localIds[i]+'" />') } } }); } </script> </head> <body> <button type="button" onclick="choosefile()">选择微信图片</button> <div id="imgs"> </div> </body> </html> ~~~ 后台 ~~~ @WebServlet("/ChooseFileServlet") public class ChooseFileServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //1. 得到access token String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET"; url = url.replace("APPID", "wxbf9210646fd3bb89"); url = url.replace("APPSECRET", "9c7874ad52b1f5ba54c5985e52ef1b82"); JSONObject obj = CommonUtil.httpsRequest(url, "GET"); String access_token = obj.getString("access_token"); //2. 得到jsapi_ticket String url2 = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi"; url2 = url2.replace("ACCESS_TOKEN", access_token); JSONObject obj2 = CommonUtil.httpsRequest(url2, "GET"); String jsapi_ticket = obj2.getString("ticket"); //3. 得到wx.config所需要的参数 String requesturl = "http://www.zyrc.tech/WeiXinJs/ChooseFileServlet"; Map<String, String> map = SignUtils.sign(jsapi_ticket, requesturl); request.setAttribute("map", map); request.getRequestDispatcher("/weixinchoosefile.jsp").forward(request, response); } } ~~~