我正在开发一个应用程序,用户可以通过 Web 界面将图像存储在 Parse 上。然后可以在本机 iOS 应用程序中显示这些图像。
图像通过 Parse REST API 上传到 Parse;然后将存储图像的 URL 保存为 a 的字符串属性PFObject
。这是我为此目的使用的 javascript 代码:
function postImageToParse(fileName, file, onSuccess, onError) {
file = file.replace(/^data:image\/(png|jpeg|jpg);base64,/, "");
var binaryImg = atob(file);
var length = binaryImg.length;
var ab = new ArrayBuffer(length);
var ua = new Uint8Array(ab);
for (var i = 0; i < length; i++) {
ua[i] = binaryImg.charCodeAt(i);
}
var blob = new Blob([ab],{type:"image/jpeg"});
var serverUrl = 'https://api.parse.com/1/files/' + basename(fileName);
$.ajax({
type: "POST",
beforeSend: function(request) {
request.setRequestHeader("X-Parse-Application-Id", '...');
request.setRequestHeader("X-Parse-REST-API-Key", '...');
request.setRequestHeader("Content-Type", file.type);
},
url: serverUrl,
data: blob,
processData: false,
contentType: false,
success:onSuccess,
error:onError
});
}
这工作正常,我得到了表单的 URL:
http://files.parse.com/b6a8c6d1-ba52-4d82-bde7-d2f2c9bb6fe4/6279b03f-521a-4481-97ae-553a0396ff98-xyz
现在,我尝试PFImageView
在 iOS 上使用来检索/显示图像,如此处所述,但发现自己无法创建一个PFFile
作为文件属性传递给PFImageView
此片段所需的对象:
PFImageView *creature = [[PFImageView alloc] init];
creature.image = [UIImage imageNamed:@"1.jpg"]; // placeholder image
creature.file = (PFFile*)file;
[creature loadInBackground];
当然,我可以通过直接访问存储在 PFObject 中的 URL 来下载图像,但我想知道这是否正确以及是否有更好的方法来处理这个问题。
那么,在所描述的场景中,我应该如何获取存储在 Parse 上的图像,我有用于上传它的 REST API 调用返回的 URL?