2016-03-26 17 views
0

AWS ve mongoLab'de ayrıştırma sunucuma bir görüntü yüklemeye çalışıyorum. Ancak, görüntüyü aşağıdaki kodla eklemeye çalıştığımda, bir görüntü aldım, görüntüyü nesne olmadan kaydetmeye çalıştığımda başarılı olur. Yanlış bir şey mi yapıyorum. 10 saatten fazla çalışıyorum ve işe yaramayacağım.Ayrıştırma Görüntüleri Android ile Kaydetme Çalışmıyor

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

hata Ne alıyoruz Çağrı? – James

+0

_ParseObject_ yerine _ParseFile_ dosyanız için _SaveCallback_ kodunuzu çağırın. –

cevap

2

Bunu deneyin ve bildirin. - Bir Üye Ol Sorgu Önce yaz 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

Merhaba Alex, hayır, hala işe yarıyor, hatayı nasıl anlayabilirim? – saner

+0

Hayır, hala değil, ancak upload() işlevi başlatılmıyor, hata dosya kaydetme bölümünde. İlk saveCallBack'de hata bölümüne gider. – saner

+0

Sanırım bu bağlantıda belirtilen parseServer bir hatadır: https://github.com/ParsePlatform/parse-server/issues/136 – saner

0

Son olarak birkaç saat çaba sonra Ayrıştırma DataBase takip etmek Adımlar bir Ayrıştırma dosya yüklemek mümkün. 2 - SignUp Query'nin başarılı yanıtında, Geçerli Kullanıcı Nesnesi Kimliği alırsınız. 3- Daha sonra "profilePictureTable" Ayrıştırma veritabanında Tek Bir Özel Sınıf oluşturun ve Belirli Sütunlar 1- profilePicture'ı ekleyin. 2- userObjectId. 4- Sonra Nihayet Geri arama 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"); 
      } 
     } 
    });