微信公众号开发之选择图片,上传图片

本文详细介绍了一种在微信小程序中实现图片选择、上传、下载及显示的方法。具体包括使用wx.chooseImage选择图片,wx.uploadImage上传图片至微信服务器,wx.downloadImage下载图片并将其转换为base64数据,最后在页面上显示处理后的图片。

function clickImg(that){

wx.chooseImage({
  count: 1,
  needResult: 1,
  sizeType: ['original', 'compressed'],
  // 可以指定是原图还是压缩图,默认二者都有
  sourceType: ['album', 'camera'],
  // 可以指定来源是相册还是相机,默认二者都有
  success: function(data) {
  var localId = data.localIds; //把图片的路径保存在images[localId]中--图片本地的id信息,用于上传图片到微信浏览器时使用
  wx.uploadImage({
    localId: localId.toString(),
    isShowProgressTips: 1,
    // 默认为1,显示进度提示
    success: function(res) {
      var mediaId = res.serverId;
      //调用后台方法存储medidld
      //图片上传完成之后,进行图片的下载,图片上传完成之后会返回一个在腾讯服务器的存放的图片的ID--->serverId
      wx.downloadImage({
        serverId: res.serverId,
        //需要下载的图片的服务器端ID,由uploadImage接口
        isShowProgressTips: 1,
        // 默认为1,显示进度提示
        success: function(res) {
          var localId = res.localId; // 返回图片下载后的本地ID
          //通过下载的本地的ID获取的图片的base64数据,通过对数据的转换进行图片的保存
          wx.getLocalImgData({
            localId: localId,
            // 图片的localID
            success: function(res) {
              var mediaId = res.serverId;
                if (window.__wxjs_is_wkwebview) { //判断ios是不是用的wkwebview 内核
                  var localData = res.localData; //localData是图片的base64数据,可以用img标签显示
                  localData = localData.replace('jgp', 'jpeg');
                  $("#kin_img").attr("src", localData);
                } else {
                  $("#kin_img").attr("src", mediaId);
                }
            });
        }
      })
    },
    fail: function(error) {
      picPath = '';
      localIds = '';
      console.log(error);
    }
  });
  },
  fail: function(res) {
    console.log(res);
  }
  });
};

 后端上传图片接口:

之前同事做的一个微信扫码拍照的功能,通过调用微信公众号jssdk接口,实现扫码拍照,然后上传到微信,在从微信资源服务器上下载下来。之前都是正常的,在近期客户发现有问题,扫码拍照后,从服务器下载下来的图片是损坏的,无法打开。

通过服务器查看了下,扫码拍照上传的图片只有1k,然后百度了很多资料,最后这篇解决了我的问题,

地址:https://developers.weixin.qq.com/community/develop/doc/000c02041e4510dc87fa8a71c51c0

 

image

 

posted on 2025-08-29 22:17  大西瓜3721  阅读(39)  评论(0)    收藏  举报

导航