• 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                 }});

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

  • 相关阅读:
    U盘启动盘恢复为普通盘
    TP框架模板中ifelse
    TP框架中多条件筛选
    日期选择器:jquery datepicker的使用
    配置本地环境,让内网可访问
    FlexSlider插件的详细设置参数
    CentOS+Nginx+PHP+MySQL详细配置(图解)
    Linux 服务器环境启动
    javascript自定义浏览器右键菜单
    强大实用的jQuery幻灯片插件Owl Carousel
  • 原文地址:https://www.cnblogs.com/uestczj/p/6569311.html
Copyright © 2020-2023  润新知