我需要从我的Android应用程序上传图像来解析数据浏览器
我创建了一个班级 - " A级",有#" ABC"文件类型的列。
但每当我将图像上传到" ABC"。
can't add objects for a field that isn't an array
我谷歌了一段时间,发现了这个link
所以,我尝试将图像上传到一个新的类和列(我没有先创建它。我让Parse自动创建并在我上传图像后为我分配)。
然后我注意到,分配给上传图像的列类型是一个数组
如果有人能够进一步解释这个问题会很棒吗?
以下是代码: - 编辑 -
ParseObject reportObject = new ParseObject(ParseClass.CaseImageClass);
reportObject.add(ParseClass.FObjectKeyAttr, objectId);
ParseFile parseBitmapFile = new ParseFile(uqID.toString() + ".png", byteArray);
parseBitmapFile.save();
reportObject.add(ParseClass.ImageAttr, parseBitmapFile);
reportObject.saveInBackground();
答案 0 :(得分:0)
上传要解析的图像时,图像Class必须是PFFile类。如果没有看到数据库的代码和设置,很难确定您收到此错误的原因。只要与Parse类关联的属性/ hash /值引用PFFile并且所有属性/ hash / value类型与每列和列的相应名称匹配,您应该没问题。在这种情况下,某些东西不匹配会导致您看到的错误。
答案 1 :(得分:0)
试试这个:
parseBitmapFile.save();
你应该使用saveInBackground()代替.save();
ParseObject.registerSubclass(Imaggg.class);
ParseObject testObject = ParseObject.create("MyProfiles");
ParseFile file = new ParseFile("123.png",imagearray);
file.saveInBackground();
testObject.put("comments",str_comment);
testObject.put("imageFile",file);
testObject.put("userName",user_name);
testObject.saveInBackground(new SaveCallback() {
@Override
public void done(ParseException e) {
dlg.dismiss();
Log.e("Exception", "get: " +e);
if (e == null) {
Toast.makeText(getApplicationContext(),"Shared Succesfully",Toast.LENGTH_LONG).show();
} else {
// Sign up didn't succeed. Look at the ParseException
// to figure out what went wrong
Toast.makeText(getApplicationContext(),"Something went wrong.Please try again later",Toast.LENGTH_LONG).show();
}
}
});
这里imagearray是byte []。
答案 2 :(得分:0)
我猜测这行代码是设置对象ID吗? Parse默认设置自己的对象id。如果要覆盖它,则会有一个单独的命令用于访问Parse定义的objectID列。
仅当列类型是数组时才使用reportObject.add(ParseClass.FObjectKeyAttr,objectId);
添加。尝试将此更改为IF,如果您没有覆盖默认的objectID列并改为创建自己的列。
reportObject.put(ParseClass.FObjectKeyAttr,objectId);
这行代码告诉parse将列作为数组。如果要将其更改为ParseFile类型或任何其他类型,则将.add更改为.put,如上面的代码所示。 .add,.addAll。 addAllUnique仅为数组类型列保留。
reportObject.add(ParseClass.ImageAttr,parseBitmapFile); reportObject.put(ParseClass.ImageAttr,parseBitmapFile);
如果您遇到任何其他问题,请告诉我。我很乐意提供帮助。