用着Bmob提供的后端云感觉挺好用的,期间遇到一些坑,查了文档也没见说明,在此做一下记录。
比如像微信朋友圈那样发一条带图片的动态。假如是这样的一个类:
public class Daily extends BmobObject{
private static final long serialVersionUID = 1L;
private String text;
// 动态与用户是一对一个关系
private User user;
private List<String> images;
// 下面是getter/setter...
}
应该考虑到若上传了图片等文件,需要先返回文件的服务器地址,再上传一条记录,确保一条记录完整地添加到数据库表。
当上传一张图片时,可以使用如下代码:
final Daily daily = new Daily();
String picPath = "sdcard/temp.jpg";
BmobFile bmobFile = new BmobFile(new File(picPath));
bmobFile.uploadblock(context, new UploadFileListener() {
@Override
public void onSuccess() {
//bmobFile.getUrl()---返回的上传文件的地址(不带域名)
//bmobFile.getFileUrl(context)--返回的上传文件的完整地址(带域名)
User user = BmobUser.getCurrentUser(context,User.class);
// 设置关联
daily.setUser(user);
daily.setImages(new List<String>().add(bmobFile.getFileUrl(context)));
daily.save(context, new SaveListener() {