2016-03-26 1 views
0

Я пытаюсь загрузить изображение на мой синтаксический анализатор на AWS и mongoLab. Однако всякий раз, когда я пытаюсь добавить изображение с приведенным ниже кодом, у меня возникла ошибка, когда я пытаюсь сохранить объект без изображения, он преуспевает. Я делаю что-то неправильно. Я пытаюсь более 10 часов и не могу заставить его работать.Parse Server Сохранение изображений с 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

Что ошибка вы получаете? – James

+0

Позвоните в _SaveCallback_ для своего _ParseFile_ вместо _ParseObject_. –

ответ

2

Попробуйте это и дайте мне знать.

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

Наконец после нескольких часов усилий, я могу загрузить файл на Синтаксическую Разбор DataBase Шагов: 1 - Написать SIGNUP Query First. 2 - При успешном ответе запроса SignUp вы получите Идентификатор объекта текущего пользователя. 3- Затем создайте один пользовательский класс в базе данных анализа «profilePictureTable» и добавьте определенные столбцы 1- profilePicture. 2- userObjectId. 4- Затем Наконец обратного вызова SaveInBackground

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"); 
      } 
     } 
    }); 
Смежные вопросы