Bomb后端云实现本地图片上传服务器教训

好吧,越来越对自己的编程水平感到绝望。这两天入手Bmob,感觉很不错,昨天按照Bmob官网文档,很快入门,实现了在移动客户端添加Person表,mAddress和mName字段,并添加数据到服务器,整个都很流畅。

今天中午,想着在Person表增加一个字段mPic,实现从本地图片上传到服务器的功能,按照文档,我是想实现单个文件资源上传,文档大概提供了两种方式,三种手段,但它其中一种方法好像是过时了,并没有找到insertObject(),如下所示的方式应该是无法使用。

1 final BmobFile bmobFile = new BmobFile(file);
2 bmobFile.uploadblock(this, new UploadFileListener() {
3 
4     @Override
5     public void onSuccess() {
6         // TODO Auto-generated method stub
7         Log.i(TAG, "电影文件上传成功,返回的名称--"+bmobFile.getFileUrl(MainActivity.this));
8         insertObject(new Movie("冰封:重生之门",bmobFile));
9     }

下面,着三种方式,都可以正常运行,但有个坑,一个用了我一个下午一个晚上的巨坑,那就是,要注意权限,也就是,手机要给它存贮的权限

 1  bmobFile.uploadblock(new UploadFileListener() {
 2                    @Override
 3                    public void done(BmobException e) {
 4                        Person person = new Person();
 5                        person.setmAddress("yongsheng");
 6                        person.setmName("gz");
 7                        person.setmPic(bmobFile);
 8                        person.save(new SaveListener<String>() {
 9                            @Override
10                            public void done(String s, BmobException e) {
11                                Toast.makeText(MainActivity.this, "Successful", Toast.LENGTH_LONG).show();
12                            }
13                        });
14 
15                    }
16                });
 1   bmobFile.upload(new UploadFileListener() {
 2                    @Override
 3                    public void done(BmobException e) {
 4                        Person person = new Person();
 5                        person.setmAddress("yongsheng");
 6                        person.setmName("gz");
 7                        person.setmPic(bmobFile);
 8                        person.save(new SaveListener<String>() {
 9                            @Override
10                            public void done(String s, BmobException e) {
11                                Toast.makeText(MainActivity.this, "Successful", Toast.LENGTH_LONG).show();
12                            }
13                        });
14 
15                    }
16                });
 1    BmobFile.uploadBatch((String[]) listImg.toArray(new String[listImg.size()]), new UploadBatchListener() {
 2                 @Override
 3                 public void onSuccess(List<BmobFile> list, List<String> list1) {
 4                     if (list1.size() == listImg.size()) { // 如果数量相等,则代表文件全部上传完成
 5                         Person person = new Person();
 6                         person.setmAddress("俊明");
 7                         person.setmName("gz");
 8                         person.setmPic(list.get(0));
 9                         person.save(new SaveListener<String>() {
10                             @Override
11                             public void done(String s, BmobException e) {
12                                 Toast.makeText(MainActivity.this, "Successful", Toast.LENGTH_LONG).show();
13                             }
14                         });}}
15                 @Override
16                 public void onProgress(int i, int i1, int i2, int i3) {
17                 }
18                     @Override
19                 public void onError(int i, String s) {
20                     Toast.makeText(MainActivity.this, "Failure" + s, Toast.LENGTH_LONG).show();
21                 }});

基本就是这样,弄清楚就觉得很简单,一直有问题,然后自己又找不到根源所在就很恼火。

 

posted @ 2017-03-18 00:41  uestczj  阅读(845)  评论(0编辑  收藏  举报