我开发了使用Android Parse API上传文件的代码。
我的代码如下:
String name = "" + IMGname;
ParseFile file = new ParseFile(name.toLowerCase(), byteArray);
String encodedString = Base64.encodeToString(byteArray, Base64.DEFAULT);
ParseObject gameScore = new ParseObject("UserDetails_New");
gameScore.put("userName", "" + userName.getText().toString().toLowerCase());
gameScore.put("userPhotoProfile", file);
gameScore.saveInBackground();
我的问题是:上面的代码大部分时间都有效,但不是每次都有效。有时它上传文件,有时不上传。任何人都可以告诉我为什么会这样吗?
答案 0 :(得分:1)
gameScore.saveInBackground();
而不是尝试监听结果回调。这样你就可以弄清楚文件保存过程出了什么问题。
gameScore.saveInBackground(new SaveCallback() {
@Override
public void done(ParseException arg0) {
if( arg0 != null )
{
//Handle Error here
}
}
});
您还可以使用saveEventually
方法。这种方法的优点是,当网络连接恢复时,它将调用try来更新Object,如果你在保存过程之间关闭应用程序,Parse框架将保持这个并且将尝试保存Object用户返回到应用程序。
答案 1 :(得分:1)
我已经使用file.saveInBackground();
这意味着我们必须首先使用以下代码上传文件:
byte[] data = "Working at Parse is great!".getBytes();
ParseFile file = new ParseFile("resume.txt", data);
file.saveInBackground();
保存完成后执行以下步骤
ParseObject jobApplication = new ParseObject("JobApplication");
jobApplication.put("applicantName", "Joe Smith");
jobApplication.put("applicantResumeFile", file);
jobApplication.saveInBackground();
所以,我的答案是:
String name = "" + IMGname;
ParseFile file = new ParseFile(name.toLowerCase(), byteArray);
file.saveInBackground();
ParseObject gameScore = new ParseObject("UserDetails_New");
gameScore.put("userName", "" + userName.getText().toString().toLowerCase());
gameScore.put("userPhotoProfile", file);
gameScore.saveInBackground();