我有一个要求,可以说有3个用户为我的应用程序。我想为每个用户添加一个图像(配置文件图片用途),以便其他两个正在使用相同应用的用户可以看到该图像。就像whatsapp个人资料照片一样。所以为此我做了以下事情。如何上传用户个人资料图片以及如何从其他用户设备获取该个人资料图片?
第1步:以用户身份登录 然后我添加了这段代码来上传图片文件。在使用User1凭证登录后,我在上传文件时将公共属性设置为YES。
NSData *imageData = UIImagePNGRepresentation([UIImage imageNamed:@"arrow.png"]);
[QBRequest TUploadFile:imageData fileName:@"arrow.png" contentType:@"image/png" isPublic:YES successBlock:^(QBResponse *response, QBCBlob *blob) {
} statusBlock:^(QBRequest *request, QBRequestStatus *status) {
} errorBlock:^(QBResponse *response) {
}];
第2步:登录身份用户2
然后我做了这样的我获取所有用户是属于我的应用程序。使用
QBGeneralResponsePage *responsePage = [QBGeneralResponsePage responsePageWithCurrentPage:currentPage perPage:perPage];
[QBRequest usersForPage:responsePage successBlock:^(QBResponse *response, QBGeneralResponsePage *page, NSArray *users) {
weakSelf.allUsers = [users mutablecopy]
[weakSelf.tableView reloadData];
} errorBlock:^(QBResponse *response) {
}];
第3步: 现在我把所有的用户,所以我做迭代找到用户BLOB ID。
QBUUser *user = (QBUUser *)self.allUsers[indexPath.row];
if (user.blobID != 0) {
[QBRequest downloadFileWithID:user.blobID successBlock:^(QBResponse *response, NSData *fileData) {
UIImage *img=[UIImage imageWithData:fileData];
[cell.imageView setImage:img];
} statusBlock:^(QBRequest *request, QBRequestStatus *status) {
} errorBlock:^(QBResponse *response) {
}];
}
但问题是,我在这里没有得到任何blobID与用户1指的USER1 blobID为0(所有用户blobID为0),上传它是成功的,我上传了后blobID该文件使用User1登录。
但是,当我登录为用户2或用户3它没有显示任何与用户1相关的blobID。上传时,我将“公开”设为“是”。 这是正确的做法或我做的任何错误请让我知道吗?
请检查您的服务器端,可能在你的API,URL一些问题,可能可能你的上传成功,但并不存储在D B。 –
没有问题。它存储在admin.quickblox.com –
响应没有问题。一旦上传成功,我将获得QBBlob。 –