search

Home  >  Q&A  >  body text

javascript - 微信JS—SDK嵌套选择图片和上传图片接口,实现一键上传图片,遇到问题

我们的实现如下:

function up_onepic() {
    wx.chooseImage({
        success: function (res) {
            upavatar.localId = res.localIds;

            if(res.localIds.length == 1) {
                //alert('上传图片');
                wx.uploadImage({
                    localId: upavatar.localId[0],
                    isShowProgressTips: 1,
                    success: function (res) {
                        upavatar.serverId.push(res.serverId);
                        var sI = upavatar.serverId;

                    fail: function (res) {
                        alert(JSON.stringify(res));
                        }
                });
            }
         } 
     });
 }

出现的问题是:选择图片的接口执行完之后,并不执行wx.uploadImage;如果在wx.uploadImage前面加上 alert('上传图片'); 语句,操作时确定之后会执行wx.uploadImage。

请问如何改进代码,实现一键上传图片。

伊谢尔伦伊谢尔伦2816 days ago468

reply all(8)I'll reply

  • PHP中文网

    PHP中文网2017-04-10 15:05:33

    在选择图片后,采用setTimeout(function(){
    wx.uploadImage()
    },0)
    可以解决android设备下的问题。
    此处还有一个坑,在IOS设备下,必须一个传完之后在调接口传下一个。否则连续调uploadImage后,只会上传最后一张图片

    reply
    0
  • 迷茫

    迷茫2017-04-10 15:05:33

    http://dailythinkdo.sinaapp.com/wx/php/sample.php可以看看我写的demo

    reply
    0
  • 高洛峰

    高洛峰2017-04-10 15:05:33

    刚找到问题所在: localIds 改为 localIds.toString() 就ok了

    reply
    0
  • PHPz

    PHPz2017-04-10 15:05:33

    我也在用微信js处理图片 ,不过是选择了图片后不执行success函数,已经返回成功的信息的啦。郁闷好久,没解决,顶一下楼主,祝找到解决方法

    话说楼主可以选择成功吗

    reply
    0
  • 天蓬老师

    天蓬老师2017-04-10 15:05:33

    我觉得你可以在wx.uploadImage事件后console.log(new Date().getTime())

    看一看是不是wx.uploadImage事件没有执行就把时间打印出来了

    然后就是,既然是微信开发,何不用html5的formData特性呢?很方便啊

    reply
    0
  • PHP中文网

    PHP中文网2017-04-10 15:05:33

    setTimeout(function (){ wx.uploadImage({
    localId: localIds, // 需要上传的图片的本地ID,由chooseImage接口获得
    isShowProgressTips: 1,// 默认为1,显示进度提示
    success: function (res) {
    var serverId = res.serverId; // 返回图片的服务器端ID

                                }
                            })},100);
    
                            把调用uploadImage放在setTimeout中延迟100ms解决
    

    reply
    0
  • 阿神

    阿神2017-04-10 15:05:33

    怎么你闷写个app比我写混合的还复杂..

    reply
    0
  • 阿神

    阿神2017-04-10 15:05:33

    可以看下你的微信上传的demo吗

    reply
    0
  • Cancelreply