关于Bmob服务器

您所在的位置:网站首页 bmob服务器介绍 关于Bmob服务器

关于Bmob服务器

2024-06-11 22:07| 来源: 网络整理| 查看: 265

本文章基于Bmob服务器的图片上传。 想了解其他服务器上传请绕道

本文章功能是单图片上传,批上传函数略有不同,自己去Bmob文档里面查看函数。

1、首先布局

很简单的布局, 就圆框Image使用有点技巧

gradle app里面加   :implementation 'de.hdodenhof:circleimageview:2.0.0'  

 XML:

2、我的数据类

public class IpetUser extends BmobUser{ public IpetUser(BmobFile user_pic) { User_pic = user_pic; } public IpetUser(String objectId){setObjectId(objectId);} private BmobFile User_pic; public BmobFile getUser_pic() { return User_pic; } public void setUser_pic(BmobFile user_pic) { User_pic = user_pic; } }

字段与Bmob数据库里面的一致, 因为就操作头像(User_pic)数据,就不声明其他数据了。

3、MainActivity 里面的代码

注意几个地方:

Bmob APPID  用你自己的;我用了ButterKnife快捷声明控件对象 ,不懂的自己百度,配置方法我也写了篇文章 ——> 点击打开链接 相册接口调用我就不逼逼了,自己翻书 。这个相册借口调用的方法适用Android4.4版本以下。4.4以上调用方法复杂一点,想了解自己查资料吧。 推荐书籍《第一行代码》

    手机图片与Bmob数据库交接关键 。图片——上传到Bmob文件管理里面——保存图片BmobFile信息到表里          这是第一个函数,上传图片到Bmob 的文件管理里面。     红圈里面的参数必须是 图片的真实地址!! (4.4以下获取真实地址容易,4.4以上获取就有所改动,不过大多APP都是4.4以下)      然后再写第二个函数 saveFile(file) ,用于保存BmobFile数据类型的数据 到相应的表里面 ,实际上是一个地址URL。 红圈是指定表里  , ID 为 zr3TKKKo的那条数据    。     

public class MainActivity extends AppCompatActivity { @BindView(R.id.head_image) CircleImageView headImage; @BindView(R.id.registre_button_signup) Button registreButtonSignup; public static final int CHOOSE_PHOTO=2; String mpath=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //Bmob默认初始化 Bmob.initialize(this, "XXXXXXX"); //ButterKnife初始化 ButterKnife.bind(this); registreButtonSignup.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); /* 开启Pictures画面Type设定为image */ intent.setType("image/*"); /* 使用Intent.ACTION_GET_CONTENT这个Action */ intent.setAction(Intent.ACTION_GET_CONTENT); /* 取得相片后返回本画面 */ startActivityForResult(intent, 1); } }); } protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { Uri uri = data.getData(); mpath = getImagePath(uri, null); //上传头像 final BmobFile file=new BmobFile(new File(mpath)); file.upload(new UploadFileListener() { @Override public void done(BmobException e) { if(e==null){ saveFile(file); } } }); ContentResolver cr = this.getContentResolver(); try { Log.e("qwe",mpath.toString()); Bitmap bitmap = BitmapFactory.decodeStream(cr.openInputStream(uri)); /* 将Bitmap设定到ImageView */ headImage.setImageBitmap(bitmap); } catch (FileNotFoundException e) { Log.e("qwe", e.getMessage(),e); } } super.onActivityResult(requestCode, resultCode, data); } private void saveFile(BmobFile file) { IpetUser user=new IpetUser("zr3TKKKo"); user.setUser_pic(file); user.update(new UpdateListener() { @Override public void done(BmobException e) { if(e==null){ Toast.makeText(MainActivity.this,"上传成功",Toast.LENGTH_SHORT).show(); }else { Toast.makeText(MainActivity.this,"上传失败",Toast.LENGTH_SHORT).show(); } } }); } private String getImagePath(Uri uri, String seletion) { String path = null; Cursor cursor = getContentResolver().query(uri, null, seletion, null, null); if (cursor != null) { if (cursor.moveToFirst()) { path = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA)); } cursor.close(); } return path; } }

结尾:第二次写请大家多多指教。有错误请在评论区指正 ,我好进步 !~~~

该功能就只能上传图片和改变_user表里 BmobFile 数据的值。 就是上传图片到服务器功能



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3