测试地址:http://www.qq210.com/shoutu/android

  1. 检查图像接口
  2. 选择本地或拍照的图片
  3. 上传选择的图片
  4. 预览上传的图片
    //1.检查图像接口
    document.querySelector('#chooseImage').onclick = function() {
    log_msg('检查api');
    unvaild_api = [];
    wx.checkJsApi({
    jsApiList:[
    'chooseImage',
    'previewImage',
    'uploadImage',
    'downloadImage',
    ],
    success:function(res){
    log_msg('返回检查api的结果'); log_msg('1.判断检查api的结果');
    $.each(res.checkResult, function(k, v) { if (!v) {
    unvaild_api.push(k);
    return false;
    }
    }); if (unvaild_api.length > 0) {
    log_msg('存在无效api'+unvaild_api.join(', '));
    log_msg('存在无效api的结果'+unvaild_api.join(', '));
    return false;
    }
    log_msg('无无效api'); var images = {
    localIds: [],
    serverId: []
    }; //2.选择本地或拍照的图片
    wx.chooseImage({
    success: function (res) {
    log_msg("返回选定照片的本地ID列表或拍照图片ID"+JSON.stringify(res));
    images.localIds = res.localIds;
    log_msg('已选择 ' + images.localIds.length + ' 张图片');
    log_msg('图片地址: ' + images.localIds.join(', ')); //3.上传选择的图片(递归)
    var i = 0, length = images.localIds.length;
    var imgs_html = [];
    var upload = function(){
    log_msg("上传图片第"+i+'图片');
    wx.uploadImage({
    localId:images.localIds[i],
    success: function(res) {
    log_msg('记录res.serverId'+res.serverId);
    images.serverId.push(res.serverId);
    imgs_html.push('<img src="'+images.localIds[i]+'"/>');
    log_msg('已上传'+images.localIds[i]+i+'/'+length);
    //如果还有照片,继续上传
    i++;
    if (i < length) {
    upload();
    }
    else {
    //4.预览上传的图片
    $("#img_wrap").html(imgs_html.join(''));
    log_msg("上传成功");
    }
    }
    });
    }; log_msg("开始上传图片");
    upload();
    }
    });
    }
    });
    }
  5. 下载上传的图片(用上传下载多媒体文件接口下载原文件http://www.qq210.com/shoutu/android);=======折腾很久 发现订阅号没有上传下载多媒体文件接口,晕喔 也就是这能用它下载图片的接口了
    //4.显示下载后的相片
    var img_html = '';
    i = 0;//重置i
    var download = function(){
    wx.downloadImage({
    serverId:images.serverIds[i],
    success:function(res){
    log_msg('下载第'+i+'张图片的结果:'+JSON.stringify(res));
    img_html += '<img src="'+res.localId+'" />'; //如果还有下载的图片,继续下载
    i++;
    if (i < length) {
    download();
    }
    else{
    $("#img_wrap").html(img_html);
    } }
    });
    }
    log_msg("开始下载图片");
    download();
    1. 现在问题又来了,预览上传时的localId和下载后的localId区别在哪里?而这个下载后的localId的图片存储在哪里?有谁知道的请留言下?
    2. =>明白了:我换了手机再打开公众号,发现不是我下载的图片的手机是看不到图片的,换句话说就是,下载后的图片存在了点击下载的那部手机上,擦,微信服务器只保留3天照片,订阅号又下载多媒体文件没权限,之后也只能强制手机下载到本地保存了!哎!

demo地址:http://www.qq210.com/shoutu/android

demo效果:

其他:

  • 为了记录执行过程和调试代码,提交日志到服务器并记录日志

    • js部分

      var log_msg = function(msg){
      $.post('<?=site_url("log/index")?>', {msg:msg});
      }
    • php部分
      class Log extends SAE_Controller {
      
          public function index()
      {
      $msg = $this->input->post('msg');
      log_message('error', $msg);
      echo $msg;
      }
      }

配置并学习微信JS-SDK(2)—图片接口的更多相关文章

  1. 微信 JS SDK 的 chooseImage 接口在部分安卓机上容易造成页面刷新

    该问题的症状是,当调用 chooseImage 接口并选择拍照,选择照片确定之后,然后从相机返回后,当前web页面就刷新了一次,导致拍照的图片无法选择上传:但是如果直接从相册中选择图片,则不会出现这个 ...

  2. 微信JS SDK接入的几点注意事项

    微信JS SDK接入,主要可以先参考官网说明文档,总结起来有几个步骤: 1.绑定域名:先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”.备注:登录后可在“开发者中心”查看对 ...

  3. 微信js sdk上传多张图片

    微信js sdk上传多张图片,微信上传多张图片 该案例已tp3.2商城为例 直接上代码: php代码: public function ind(){ $appid="111111111111 ...

  4. 实战微信JS SDK开发:贺卡制作与播放(1)

    前段时间忙于CanTK 2.0的开发,所以博客一直没有更新.CanTK 2.0主要增强了游戏和富媒体的开发,现在编码和测试基本完成了,等文档完成了再正式发布,里面有不少激动人心的功能,等发布时再一一细 ...

  5. 微信JS SDK配置授权,实现分享接口

    微信开放的JS-SDK面向网页开发者提供了基于微信内的网页开发工具包,最直接的好处就是我们可以使用微信分享.扫一扫.卡券.支付等微信特有的能力.7月份的时候,因为这个分享的证书获取问题深深的栽了一坑, ...

  6. 微信js SDK接口

    微信JS-SDK说明文档 http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html 一.微信登录功能 在进行微信OAut ...

  7. 微信JS SDK Demo 官方案例[转]

    摘要: 微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包. 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系统的能力,同时可以直接使用 ...

  8. 微信JS SDK Demo

    微信JS-SDK 分享到朋友圈 分享给朋友 分享到QQ 拍照或从手机相册中选图 识别音频并返回识别结果 使用微信内置地图查看位置原文:http://www.cnblogs.com/txw1958/p/ ...

  9. 微信JS SDK Demo 官方案例

    微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包. 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系统的能力,同时可以直接使用微信分享 ...

  10. 微信开发(2):微信js sdk分享朋友圈,朋友,获取config接口注入权限验证(转)

    进行微信开发已经一阵子了,从最初的什么也不懂,到微信授权登录,分享,更改底部菜单,素材管理,等. 今天记录一下微信jssdk 的分享给朋友的功能,获取config接口注入. 官方文档走一下简单说:四步 ...

随机推荐

  1. SQL SERVER 查询死锁

    USE mastergo CREATE PROCEDURE [dbo].[sp_who_lock]AS     BEGIN        DECLARE @spid INT ,             ...

  2. Android Studio 1.0.2 设置内存大小

    http://www.linuxidc.com/Linux/2015-04/116457.htm Android studio 1.0.2默认最大内存是750M,这样跑起来非常的卡,难以忍受,机器又不 ...

  3. Cocos2d-js 3.0 alp2 使用指南

    Download Cocos2d-JS: http://www.cocos2d-x.org/download Unzip and copy to C:/ Download JDK: http://ww ...

  4. java获得项目绝对路径

    在jsp和class文件中调用的相对路径不同. 在jsp里,根目录是WebRoot 在class文件中,根目录是WebRoot/WEB-INF/classes 当然你也可以用System.getPro ...

  5. wordpress主题制作常用基本的模板及说明

    style.css : CSS(样式表)文件,一般包括主题声明和通用css样式代码 index.php : 主页模板,一般用来做网站的首页 header.php : Header模板,一般是所有页面的 ...

  6. 屌丝程序猿赚钱之道 之APP

    假设你已经通过APP赚到了钱,那么本文对你而言没有意义.倒是希望你可以给我们诸多建议. 通过制作APP或者说手机应用赚钱,相信是非常多程序猿希望做的事情.也确实有一些人通过APP赚到了钱. 对于程序猿 ...

  7. lua function

    This is the main reference for the World of Warcraft Lua Runtime. Note that these are mostly standar ...

  8. Android开发之TextView的下划线添加

    如何给TextView添加下划线呢,最近项目中需要这个,于是就用代码添加了下划线功能.主要就是用Paint的setFlags方法来实现,具体如下: ((TextView)mScrollView.fin ...

  9. Java基础知识强化之网络编程笔记04:UDP之发送端的数据来自于键盘录入案例

    1. 数据来自于键盘录入 键盘录入数据要自己控制录入结束. 2. 代码实现: (1)发送端: package com.himi.updDemo1; import java.io.IOException ...

  10. linux mysql 授权以及 iptables开启3306

    mysql授权ip段访问mysql grant all privileges on *.* to 'yang'@'192.168.1.%' identified by '123456'; linux ...