我正在开发一个应用程序,用户可以在其中通过 Web 界面将图像存储在 Parse 上。然后可以在原生 iOS 应用中显示这些图像。
图像通过 Parse REST API 上传到 Parse;然后将存储图像的 URL 保存为 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: "OST",
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,
successnSuccess,
errornError
});
}
这工作正常,我得到了表单的 URL:
http://files.parse.com/b6a8c6d1-ba52-4d82-bde7-d2f2c9bb6fe4/6279b03f-521a-4481-97ae-553a0396ff98-xyz
现在,我尝试在 iOS 上使用 PFImageView 来检索/显示图像,如 here 所述,但发现自己无法创建一个 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?
Best Answer-推荐答案 strong>
我查看了PFFile 的界面,没有找到直接下载PFFile 的方法。但是,您说您将文件的 URL 设置为 PFObject 的字符串属性。相反,为什么不将该属性设置为 PFFile ?
PFObject *object = ....
PFFile *imageFile = [object objectForKey"imageFile"];
creature.file = file;
关于ios - 通过 REST API 将图像保存到 Parse,然后在 iOS 应用程序中使用它,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/16964750/
|