国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > iOS > 正文

iOS多張圖片總是只能上傳一張的問題

2019-11-09 18:37:51
字體:
供稿:網(wǎng)友

最近在做圖片上傳的功能,使用的AFNetworking提供的方法上傳圖片,發(fā)現(xiàn)多張圖片時總是只有一張圖片上傳到后臺。

有問題的上傳代碼為:

特別提醒:

創(chuàng)建AFHTTPsessionManager時,直接使用[AFHTTPSessionManager manager]會造成內(nèi)存泄漏,需要實現(xiàn)單列方法,可參看AFNetworking的Demo

        AFHTTPSessionManager *manager = [TPHTTPTool sharedHTTPManager];        manager.responseSerializer = [AFJSONResponseSerializer serializer];        //設(shè)置響應(yīng)頭可以接收的content-type        NSMutableSet *tempSet = [manager.responseSerializer.acceptableContentTypes mutableCopy];        [tempSet addObjectsFromArray:@[@"text/html"]];        manager.responseSerializer.acceptableContentTypes = [tempSet copy];        [manager POST:URL_detailPatientUpdate parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {            for(NSInteger i = 0; i < images.count; i++){                //取出單張圖片二進制數(shù)據(jù)                id obj = images[i];                UIImage *image = nil;                if ([obj isKindOfClass:[UIImage class]]) {                    image = (UIImage *)obj;                }else{                    image = [UIImage imageWithContentsOfFile:obj];                }                if (image) {                    NSData *imageData = [TPDataTool dataWithImage:image maxKB:500.0f];                    NSLog(@"圖片大小:%ld K" , (long)imageData.length / 1024);                    // 上傳filename                    NSString *fileName = [NSString stringWithFormat:@"image_%ld.jpg", (long)blockI];                    [formData appendPartWithFileData:imageData name:@"file" fileName:fileName mimeType:@"image/jpeg"];                }            }        } PRogress:^(NSProgress * _Nonnull uploadProgress) {                    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responSEObject) {                    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {                    }];

找后臺調(diào)試后發(fā)現(xiàn),通過上面的方法上傳多張圖片,實際上只有一張被傳到后臺,可能的原因是:

上傳多張圖片時,由于url的參數(shù)沒有變化,iOS默認是同一個請求,只發(fā)送了一次請求給后臺,故后臺只收到一張圖片。

解決辦法是將循環(huán)把整個請求方法都包起來。代碼為:

// 上傳多張圖片    for(NSInteger i = 0; i < images.count; i++)    {        AFHTTPSessionManager *manager = [TPHTTPTool sharedHTTPManager];        manager.responseSerializer = [AFJSONResponseSerializer serializer];        //設(shè)置響應(yīng)頭可以接收的content-type        NSMutableSet *tempSet = [manager.responseSerializer.acceptableContentTypes mutableCopy];        [tempSet addObjectsFromArray:@[@"text/html"]];        manager.responseSerializer.acceptableContentTypes = [tempSet copy];        __block NSInteger blockI = i;        [manager POST:URL_detailPatientUpdate parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {            //取出單張圖片二進制數(shù)據(jù)            id obj = images[blockI];            UIImage *image = nil;            if ([obj isKindOfClass:[UIImage class]]) {                image = (UIImage *)obj;            }else{                image = [UIImage imageWithContentsOfFile:obj];            }            if (image) {                NSData *imageData = [TPDataTool dataWithImage:image maxKB:500.0f];                NSLog(@"圖片大小:%ld K" , (long)imageData.length / 1024);                // 上傳filename                NSString *fileName = [NSString stringWithFormat:@"image_%ld.jpg", (long)blockI];                [formData appendPartWithFileData:imageData name:@"file" fileName:fileName mimeType:@"image/jpeg"];            }        } progress:^(NSProgress * _Nonnull uploadProgress) {                    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {                    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {                   }];}


上一篇:iOS wifi認證

下一篇:iOS仿QQ分組效果

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 化隆| 松滋市| 章丘市| 湖南省| 金坛市| 绥化市| 和硕县| 秭归县| 青海省| 尉氏县| 周至县| 苗栗市| 和顺县| 慈溪市| 治多县| 晋宁县| 乌什县| 兰考县| 称多县| 邵武市| 弥勒县| 广饶县| 志丹县| 杂多县| 周至县| 噶尔县| 乌鲁木齐市| 东明县| 维西| 建水县| 邵阳市| 贡嘎县| 宁南县| 金川县| 华宁县| 内黄县| 湖口县| 衢州市| 临城县| 松阳县| 金平|