我正在尝试使用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')和其他一些东西,但它不会工作!
答案 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()};
}
});
}