簡體   English   中英

如何上傳用戶個人資料圖片,以及如何從其他用戶設備獲取該個人資料圖片?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM