从文件存储中获取图像[Backendless]

时间:2016-02-05 18:54:33

标签: backendless

我的用户将一些图片上传到Backendless的FileStorage。 这是上传顺序:

    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。然后据说用url做一个httpRequest来取回字节数据。 我能解决的是使用什么样的 .find 方法?我 .findById()?如果是这样,我会使用什么ID? &#34;路径&#34;,&#34;名称&#34; &#34;表&#34;等等?

有没有人可以在这里展示一个适合我案例的例子,还有一个存储网址的表格等等? 感谢。

1 个答案:

答案 0 :(得分:4)

你就是这样的(为了简单起见显示同步调用,但请务必将其更改为Android上的Async):

#include <boost/circular_buffer.hpp>
#include <queue>
#include <deque>
#include <iostream>

class YourClass
{
public:
    YourClass(bool needs_infinite_amount_of_data) :
        needs_infinite_amount_of_data(needs_infinite_amount_of_data),
        queue(),
        queue_with_circular_buffer(boost::circular_buffer<int>(needs_infinite_amount_of_data ? 0 : 100))
    {
    }

    void Operation()
    {
        if (needs_infinite_amount_of_data)
        {
            Operation(queue);
        }
        else
        {
            Operation(queue_with_circular_buffer);
        }
    }

private:
    template <class Container>
    static void Operation(Container& container)
    {
        container.push(1);
        std::cout << container.front() << "\n";
    }

    bool needs_infinite_amount_of_data;
    std::queue<int> queue;
    std::queue<int, boost::circular_buffer<int>> queue_with_circular_buffer;
};

int main()
{
    YourClass obj(false);
    obj.Operation();
}