一.问题
最近着手开发小程序发现,7月份BMOB更新开发文档后,上传图片所返回的file数据内容不再是Array形式:
uploadImg: function () {
var that = this;
wx.chooseImage({
count: 1,
sizeType: ['compressed'],
sourceType: ['album', 'camera'],
success: function (res) {
var tempFilePaths = res.tempFilePaths[0];
var time = util.formatTime(new Date());
var name = time + ".jpg";//日期命名上传的图片
var file = new Bmob.File(name, tempFilePaths);
file.save().then(function (res) {
console.log(res)
that.setData({
images: url
})
wx.showToast({
title: '照片上传成功',
icon: 'succes',
duration: 2000,
mask: true
})
}, function (error) {
console.log(error);
wx.showToast({
title: '照片上传失败',
duration: 2000,
mask: true
})
})
}
})
},
}
其中console.log(res)打印出来的数据内容:
而是返回String形式:
所以不能通过数组的形式获取到图片的名字或者URL,需要更改图片返回的JSON对象的类型才能获取其数据。
二.解决方法
首先获取上传的图片的数据内容(上传多张图片时是按Array形式储存每一张图片的数据)
var url = res[n];
(n为第n-1张图片)
url = JSON.parse(url).url;
(利用JSON.parse把数据内容为String类型转换成Array类型)
得出的URL:
然后就可以将图片URL存进数据库中了。