国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 简阳市| 鸡西市| 彭山县| 喀什市| 宿州市| 巴彦县| 夹江县| 扶余县| 安达市| 滁州市| 黄骅市| 扶沟县| 乡城县| 仁布县| 呈贡县| 海阳市| 临泉县| 思茅市| 新民市| 镇巴县| 洛宁县| 平阳县| 九龙县| 工布江达县| 昌江| 阳春市| 兰州市| 康乐县| 平顺县| 临汾市| 河北区| 乌兰察布市| 汤阴县| 青铜峡市| 大同县| 饶平县| 恭城| 安康市| 开阳县| 石门县| 浦北县|