来自Parse.com的图像字节

时间:2015-01-14 16:55:57

标签: javascript parse-platform

我正在尝试使用Javascript将Parse.com对象转换为图像。该对象属于Bytes类型,我无法以任何方式转换它。有人能举例说明如何将其变成功能性URL吗?我尝试访问它,但它只是一直崩溃。

编辑:

getURL: function () {
    var query = new Parse.Query("Token");
    query.limit(20);
    query.find().then(this.handleCallback.bind(this));
},
handleCallback: function (objects) {
    for (var i = 0; i < objects.length; i++) {
        this.tokenSearch[i] = {
            imgURL: "data:image/png;base64," + objects[i].get("pic")
        };
    }
}

我已经尝试过对象[i] .get(“pic”)。url(),objects [i] .get(“pic”)。toString('base64')和其他一些东西,但它不会工作!

1 个答案:

答案 0 :(得分:0)

如果要存储图像,以后可以加载一个URL,则应切换到File数据类型,而不是只推送一个字节数组。您链接的文档建议如下:

  

存储二进制数据有两种方法。 Bytes类型允许您直接在PFObject上关联NSData / bytes []类型。建议仅适用于小块二进制编码数据。对于实际文件(图像,文档等),可以通过实例化PFFile / ParseFile并在字段上设置文件类型来使用。

您已将实际的字节数组存储到Parse类的pic列中。因此,这就是你所得到的。如果您选择将其存储为File(iOS / OSX中为PFFile,Android中为ParseFile),则可以执行您尝试执行的操作。实际上,Parse只是存储字节,因为它将存储任何其他数据,例如Date或String。没有与之关联的网址数据。

以下是如何从iOS设备创建和上传PFFile的方法:

- (void)updateloadImage:(UIImage *)image {
    PFFile *file = [PFFile fileWithData:UIImagePNGRepresentation(image)];
    PFObject *newToken = [PFObject objectWithClassName:@"Token"];
    newToken[@"pic"]   = file;
    [newToken saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
            // Do real error handling here
            // Now, you have :
            // 1. The "pic" saved to Parse as a PFFile
            // 2. The "token" saved to Parse as a PFObject
            // 3. The "pic" stored as a property on the "token"

    }
     ];
}

一旦你将它存储在Parse上,你就可以在JavaScript SDK中访问它:

function getURL() {
    var query = new Parse.Query("Token");
    query.limit(20);
    query.find().then(function (objects) {
        for (var i = 0; i < objects.length; i = i + 1) {
            this.tokenSearch[i] = {imgURL: objects[i].get("pic").url()};
        }
    });
}