Parse platform Parse:上传图像的对象类型
我需要从我的android应用程序上传一个图像来解析数据浏览器。 我创建了一个类——class a,它有一个文件类型为ABC的列。 但每当我把图片上传到ABC时,我总是会遇到以下错误Parse platform Parse:上传图像的对象类型,parse-platform,Parse Platform,我需要从我的android应用程序上传一个图像来解析数据浏览器。 我创建了一个类——class a,它有一个文件类型为ABC的列。 但每当我把图片上传到ABC时,我总是会遇到以下错误 can't add objects for a field that isn't an array 我搜索了一会儿,发现了这个。 因此,我尝试将图像上传到一个新的类和列,我并没有首先创建这个。我让解析自动创建并分配给我后,我上传了我的图像到它。 然后我注意到,分配给上传图像的列类型是一个数组。 如果有人能进一步解
can't add objects for a field that isn't an array
我搜索了一会儿,发现了这个。
因此,我尝试将图像上传到一个新的类和列,我并没有首先创建这个。我让解析自动创建并分配给我后,我上传了我的图像到它。
然后我注意到,分配给上传图像的列类型是一个数组。
如果有人能进一步解释这一点就好了
下面是代码:-编辑-
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();
上载要解析的图像时,图像类必须是PFFile类。如果看不到数据库的代码和设置,就很难确定收到此错误的原因。只要与Parse类关联的属性/哈希/值引用一个PFFile,并且所有的属性/哈希/值类型都与每个列和列的各自名称匹配,就可以了。本例中的某些内容不匹配,导致您看到的错误 试试这个:
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是字节[]。我猜这行代码是用来设置对象id的?默认情况下,Parse设置它们自己的对象id。如果您要覆盖它,那么将使用一个单独的命令来访问由Parse定义的objectID列 reportObject.addParseClass.FObjectKeyAttr,objectId 仅当列类型为数组时才使用Add。如果不重写默认的objectID列并创建自己的列,请尝试将其更改为 reportObject.putParseClass.FObjectKeyAttr,objectId 这行代码告诉parse将列设置为数组。如果要将其更改为ParseFile类型或任何其他类型,请按照上述代码中所述更改.add to.put。添加,.addAll。addAllUnique仅为数组类型列保留 reportObject.addParseClass.ImageAttr,parseBitmapFile; reportObject.putParseClass.ImageAttr,parseBitmapFile 如果你还有其他问题,请告诉我。我很乐意帮忙