2016-03-26 8 views
0

AWSとmongoLabのパースサーバに画像をアップロードしようとしています。しかし、以下のコードでイメージを追加しようとすると、エラーが発生します。イメージなしでオブジェクトを保存しようとすると、成功します。私は間違ったことをしていますか?私は10時間以上働こうとしており、それを働かせることができませんでした。パーズサーバAndroidで画像を保存できない

ParseFile image1; 

Bitmap bm = BitmapFactory.decodeResource(getResources(), 
     R.drawable.ph); 

ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
bm.compress(Bitmap.CompressFormat.PNG, 100, stream); 
byte[] byteArray = stream.toByteArray(); 

image1 = new ParseFile("profilePhoto.png", byteArray); 
image1.saveInBackground(); 


JSONArray myFriendList = new JSONArray(); 
myFriendList.put("xxxxxxxxxxxxxxx"); 
myFriendList.put("yyyyyyyyyyyyyyy"); 

ParseObject userSettingObj = new ParseObject("userSetting"); 
userSettingObj.put("profileName", profileNameField.getText().toString()); 
userSettingObj.put("userid", ParseUser.getCurrentUser().getObjectId()); 
userSettingObj.put("name", nameField.getText().toString()); 
userSettingObj.put("surname", surnameField.getText().toString()); 
userSettingObj.put("friendList", myFriendList); 

userSettingObj.put("photo", image1); 

userSettingObj.saveInBackground(new SaveCallback() { 
    @Override 
    public void done(ParseException e) { 

     if (e == null) { 

      System.out.println("saved successfully"); 

     } else { 

      System.out.println("error while saving"); 

     } 

    } 
}); 
+1

コールバックSaveInBackgroundを呼び出しますか? – James

+0

_ParseObject_の代わりに_ParseFile_の_SaveCallback_を呼び出します。 –

答えて

2

これを試してください。新規アカウントクエリファーストを書く - 1:

ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
    bm.compress(Bitmap.CompressFormat.PNG, 100, stream); 
    byte[] byteArray = stream.toByteArray(); 
image1 = new ParseFile("profilePhoto.png", byteArray); 
image1.saveInBackground(new SaveCallback() { 
     @Override 
     public void done(ParseException e) { 

      if (e == null) { 
    upload(); 
      } else { 

      } 

     } 
    }); 

    public void upload(){ 
JSONArray myFriendList = new JSONArray(); 
    myFriendList.put("xxxxxxxxxxxxxxx"); 
    myFriendList.put("yyyyyyyyyyyyyyy"); 

    ParseObject userSettingObj = new ParseObject("userSetting"); 
    userSettingObj.put("profileName", profileNameField.getText().toString()); 
    userSettingObj.put("userid", ParseUser.getCurrentUser().getObjectId()); 
    userSettingObj.put("name", nameField.getText().toString()); 
    userSettingObj.put("surname", surnameField.getText().toString()); 
    userSettingObj.put("friendList", myFriendList); 

    userSettingObj.put("photo", byteArray); 

    userSettingObj.saveInBackground(new SaveCallback() { 
     @Override 
     public void done(ParseException e) { 

      if (e == null) { 

       System.out.println("saved successfully"); 

      } else { 

       System.out.println("error while saving"); 

      } 

     } 
    });} 
+0

こんにちはアレックスは、まだ動作しているメモ、どのようにエラーを理解できますか? – saner

+0

まだありませんが、upload()関数が起動していない場合、エラーはファイル保存部分にあります。最初のsaveCallBackでは、エラー部分に移動します。 – saner

+0

私はそれがリンクに記載されているparseServerのバグだと思います:https://github.com/ParsePlatform/parse-server/issues/136 – saner

0

は最後の数時間の努力の後、私は、解析データベースに従うこと 手順を解析ファイルをアップロードすることができています。 2 - SignUp Queryの応答が成功すると、現在のユーザーオブジェクトIDが取得されます。 3次に、解析データベース "profilePictureTable"にカスタムクラスを1つ作成し、特定の列1〜profilePictureを追加します。 2 - userObjectId。 4-その後、最後に、あなたが取得しているエラーは何

Sample Image that how it will look a like

Bitmap bitmap = BitmapFactory.decodeFile("Your File Path"); 
    ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
    bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream); 
    final byte[] data = stream.toByteArray(); 


    final ParseFile file = new ParseFile("profile_pic.png", data); 

    file.saveInBackground(); 

    final ParseObject profilePicture = new ParseObject("profilePictureTable"); 
    profilePicture.put("profilePicture", file); 
    profilePicture.put("userObjectId",ParseUser.getCurrentUser().getObjectId()); 

    profilePicture.saveInBackground(new SaveCallback() 
    { 
     @Override 
     public void done(ParseException e) 
     { 
      if (e == null) 
      { 
       Log.i("Parse", "saved successfully"); 


      } 
      else 
      { 
       Log.i("Parse", "error while saving"); 
      } 
     } 
    });