2016-02-05 2 views
1

Мои пользователи загружают некоторые изображения в FileStorage at Backendless. Это последовательность загрузки:Получить изображение из хранилища файлов [Backendless]

Backendless.Files.Android.upload(image1_scaled, Bitmap.CompressFormat.PNG, 
100, "profileImage", "images", new AsyncCallback<BackendlessFile>() { 
         @Override 
         public void handleResponse(BackendlessFile response) { 
           fileMapping.profile_url = response.getFileURL(); 
           Backendless.Data.of(FileMapping.class).save(fileMapping, 
           new AsyncCallback<FileMapping>() { 
             @Override 
             public void handleResponse(FileMapping response) { 
               toast_error("Image stored"); 
             } 
             @Override 
             public void handleFault(BackendlessFault fault) { 
               System.out.println("ERROR" + fault.getCode()); 
             } 
           }); 
         } 
         @Override 
         public void handleFault(BackendlessFault fault) { 
         } 
       }); 

И это работает безупречно. Теперь мне нужно вернуть изображение с помощью API для его отображения.

Поэтому мне нужно позвонить BackendlessCollection<FileMapping> userFiles = Backendless.Data.of(FileMapping.class), чтобы получить URL-адрес из этой таблицы. А затем предположительно сделайте httpRequest с URL-адресом, чтобы вернуть данные байта. Что я не могу решить, какой тип .find способ использования? Do I .findById()? И если да, то какой идентификатор я использую? «Путь», «имя», «таблица» и т. Д.?

Может ли кто-нибудь показать пример моего случая здесь, с таблицей, хранящей url и т. Д.? Спасибо.

ответ

4

Вы бы это что-то вроде этого (показывает синхронизации вызова для простоты, но убедитесь, что изменить его Async на Android):

BackendlessCollection<FileMapping> fileMappings; 
fileMappings = Backendless.Data.of(FileMapping.class).find(); 
Iterator<FileMapping> iterator = fileMappings.getCurrentPage().iterator(); 

while(iterator.hasNext()) 
{ 
    FileMapping fileMapping = iterator.next(); 
    Log.i("MyApp", "file URL is " + fileMapping.profile_url); 
} 
+0

AsyncCallback на .find называют? Потому что я продолжаю получать от него «Несовместимые типы». Он требует BackendlessCollection , но находит «void»? – Benni

+0

Метод @Benni Sync возвращает BackendlessCollection, но async возвращает void, так как возвращает результат в обратный вызов. – Scadge

+0

@Scadge Я с тобой так далеко. Но это запуталось, когда мой класс FileMapping был вовлечен. Будете ли вы любезны предоставить пример с использованием метода Async в моем случае? В противном случае я просто закончу в своем коде. – Benni

Смежные вопросы