测试地址: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;
      }
      }

最新文章

  1. Maven创建web项目:SpringMVC+Mybatis 【转】
  2. angular.js规范写法
  3. Bash Shell 获取进程 PID
  4. JavaScript 语句 if else
  5. Hamcrest
  6. hust 1010 最短循环节点
  7. 【M30】代理类
  8. GridView拖动效果实现
  9. Object传入String类型和其他
  10. commons-lang使用
  11. swift Dictionary 字典
  12. Matlab强迫症产生的图像
  13. Android开发中有用工具之--Log工具类
  14. GDI+_从Bitmap里得到的Color数组值分解
  15. LVS负载均衡简单配置
  16. 转://WITH AS and materialize hints
  17. 王者荣耀交流协会互评Beta版本及答复功能改进建议、Bug修正
  18. scrapy-继承默认的user-agent 中间件
  19. 基于at91rm9200的i2c分析(DS1307实时时钟芯片)
  20. 需求用例分析之五:业务用例之Rational系

热门文章

  1. 软件缺陷分析方法:ODC
  2. wxPython中添加窗口标题图标
  3. BMVC reading list
  4. linux jdk tomcat
  5. php的ob_flush和flush(转)
  6. uva 167 - The Sultan&amp;#39;s Successors(典型的八皇后问题)
  7. JAVA对象之生
  8. Regular Expressions in Grep Command with 10 Examples --reference
  9. SQL中存储过程的例子
  10. HDOJ-1754(简单线段树)