做一个图片上传的功能,写了一个自定义的上传函数,客户端点击提交数据的时候,判断图片组件中是否有图片,如果有,则上传,后台用tp5。

data:{

upToSrvImg:[]

}

下面是自定义图片上传函数

//自定义图片上传函数

upFileDiy:function(filePaths,successUp,failUp){

var that = this;


var upToSrvImgs = [];

for (var i = 0; i < filePaths.length; i++) {


wx.uploadFile({

url: that.data.baseUrl+'index/index/upfile.html',

filePath: filePaths[i],

name: 'files',

header: { 'Content-Type': 'multipart/form-data' },

formData:{

},

success: function (res) {

console.log(res.data);  //此处可以返回正确的值,如20180201\c1bd9b79d693e77e0ed871d7dde74ca8.jpg


var subToSrvPath = that.data.baseUrl + "uploads/"+res.data; //将图片的完整服务器地址拼装,下面用到

upToSrvImgs.push(subToSrvPath);

successUp++;

//console.log("uptosrvimgs数组结束元素" + upToSrvImgs);

console.log('成功上传' + successUp + '张照片');

that.setData({

// chooseFiles:[],

images:upToSrvImgs

})

},

fail: function (res) {

failUp++;

console.log('失败了' + failUp + '张照片');

},

complete:function(){

console.log('upToSrvImgs最后的数组元素是:' + upToSrvImgs);

//that.data.upToSrvImg = upToSrvImgs;

that.setData({

upToSrvImg:upToSrvImgs

})


console.log(that.data.upToSrvImg);

},


})

}

}


testUrl:function(){

var imgs = this.data.chooseFiles;

var successUp = 0;

var failUp = 0;

this.upFileDiy(imgs, successUp, failUp);

console.log("点击了测试按钮,图片路径是:")

console.log(this.data.images);

},

下面是wxml

<button catchtap="testUrl">我要测试button>

如果是点击我要测试按钮的话控制台提示图片路径为空,但是,再次点击的话就会打印出完整的图片的地址。不知道是怎么回事。that.setData设置有延迟吗,还是我的方法有误啊,各位大神帮忙分析一下,拜托了


展开全部
收起
1回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • 三层楼

    1人对此回答表示赞同

    请问解决了吗

    展开
    1
    0回复
    发布于 5年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部