AFNetworking实现多张图片上传

利用AFNetworking实现多张图片上传,比如要上传的参数是其他参数加一个图片数组如下:

- (void)sendComments {
 //上传的参数如下:
 NSDictionary *dic = @{@"eva.eva_goods_id":@(goodsId),
                          @"eva.eva_user_id":userId,
                          @"eva.eva_grade":@(_grade),
                          @"eva.eva_detail":commentText
                          @"photos":@[1.png,2.png]};

 //这里我们需要将photos参数分离出来具体代码如下:
 NSDictionary *paramsDict = @{@"eva.eva_goods_id":@(goodsId),
                              @"eva.eva_user_id":userId,
                               @"eva.eva_grade":@(_grade),
                               @"eva.eva_detail":commentText};

 NSMutableArray *imageArray = [NSMutableArray array];
//这里假设_selectedPhotos是从本地相册选取的图片,具体实现这里将不作说明了
if (_selectedPhotos.count > 0 ) {

        for (UIImage *image in _selectedPhotos) {

            NSData *imagedata = [self imageDataWithImage:image];
            [imageArray addObject:imagedata];
        }
    }

    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    [manager POST:url parameters:paramsDict constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {

        for (NSInteger i = 0; i < imageArray.count; i++) {

            NSData *picData = uploadParamArray[i];
            NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
            formatter.dateFormat = @"yyyyMMddHHmmss";

            //文件名
            NSString *fileNmae = [NSString stringWithFormat:@"%@%ld.png",[formatter stringFromDate:[NSDate date]],(long)i];

            //其中name需要设置为图片上传的参数名pothos, mimeType是文件的类型
            [formData appendPartWithFileData:picData name:@"photo" fileName:fileNmae mimeType:@"image/png"];
        }


    } progress:^(NSProgress * _Nonnull uploadProgress) {


    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {

        //上传成功后的回调


    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {

        //上传失败        
    }];
}

 - (NSData *)imageDataWithImage:(UIImage *)image {

    NSData *data;

    if (UIImagePNGRepresentation(image) == nil) {

        data = UIImageJPEGRepresentation(image, 1);

    }else {

        data = UIImageJPEGRepresentation(image, 0.01);
    }

    return data;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值