【小编推荐】微信选择上传图片(拍照和相册)

2015-10-18   |   发布者:梁国芳   |   查看:3320次

php
用了很多方法,但是用h5自带的 方法 效果很不好,由于是在微信中展示的页面。所以用了微信的组件:
贴代码:

微信sdk  代码略

<script src="jquery.js"></script>
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
<script>
 
  wx.config({
    debug: false,
    appId: '<?php echo $signPackage["appId"];?>',
    timestamp: <?php echo $signPackage["timestamp"];?>,
    nonceStr: '<?php echo $signPackage["nonceStr"];?>',
    signature: '<?php echo $signPackage["signature"];?>',
    jsApiList: [
      // 所有要调用的 API 都要加到这个列表中
   
'chooseImage',    
'previewImage',    
'uploadImage',    
'downloadImage'  
 
 
    ]
  });
 
    // 在这里调用 API
 
var  tupian = "";
 // 5.1 拍照、本地选图
  var images = {
    localId: [],
    serverId: []
  };
  document.querySelector('#chooseImage').onclick = function () {
    wx.chooseImage({
      success: function (res) {
        images.localId = res.localIds;
        alert('已选择 ' + res.localIds.length + ' 张图片');
/* ***  选择结束  上传开始  。 */
   var i = 0, length = images.localId.length;
    images.serverId = [];
   wx.uploadImage({
        localId: images.localId[i],
        success: function (res) {
          i++;
          alert('已上传:' + i + '/' + length);
          images.serverId.push(res.serverId);
 
 tupian = res.serverId;
 
 
 
 
 document.getElementById("img").innerHTML="<img  src='http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=<? echo   $jssdk->getAccessToken(); ?>&media_id="+tupian+"'   />";
 
 
 document.getElementById("imgdiv").innerHTML="http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=<? echo   $jssdk->getAccessToken(); ?>&media_id="+tupian;
 
 
  
          if (i < length) {
            upload();
          }
        },
        fail: function (res) {
          alert(JSON.stringify(res));
        }
      });
 
 
/* * *  */
      }
    });
 
  };
 
 
 
</script>

在上面的代码中,上传图片的图片还在微信的  服务器上,提交订单后,可以根据微信服务上图片的地址,保存包本地服务器即可。