[英]How to upload the Users profile pic and how to fetch that profile pic from another users device?
我有一個要求,可以說我的應用有3個用戶。 我想為每個用戶添加一個圖像(個人資料照片用途),以便該圖像對於使用同一應用程序的其他兩個用戶可見。 就像whatsapp個人資料照片一樣。 為此,我做了以下事情。
步驟1: 以User1身份登錄,然后添加此代碼以上傳圖像文件。 使用User1憑據登錄后,上傳文件時將Public屬性設置為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: 以User2身份登錄
然后我像這樣,獲取所有屬於我的應用程序的用戶。 運用
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) {
}];
}
但是問題是在這里我沒有得到任何帶有User1的blobID,這意味着user1的blobID為0 (所有用戶的blobID為0),但是在上傳時成功了,並且在使用User1登錄后上傳文件后得到了blobID。
但是,當我以user2或User3身份登錄時,它沒有顯示與user1相關的任何blobID。 上傳時,我將“公開”設為“是”。 這是正確的做法還是我做的任何錯誤,請告訴我?
在blob上傳之后,您應該使用帶有QBUpdateUserParameters的請求來更新用戶的blobID:
[QBRequest TUploadFile:imageData fileName:@"arrow.png" contentType:@"image/png" isPublic:YES successBlock:^(QBResponse *response, QBCBlob *blob) {
QBUpdateUserParameters *userParams = [QBUpdateUserParameters new];
userParams.blobID = blob.ID;
[QBRequest updateCurrentUser:userParams successBlock:^(QBResponse * _Nonnull __unused response, QBUUser * _Nullable user) {
} errorBlock:^(QBResponse * _Nonnull response) {
}];
} statusBlock:^(QBRequest *request, QBRequestStatus *status) {
} errorBlock:^(QBResponse *response) {
}];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.