直接调用AF里面封装的上传图片方法
NSDictionary*dic = @{@"name":@"22",@"count":@"123"};
这个dic字典里面放你除了图片的其它参数
这里的imgArray是储存图片的数组,这里体一下,上传的图片需要转成二进制的数据进行上传
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]
[manager POST:urlparameters:pareamesconstructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
for (id valuein imgArray) {
if ([value isKindOfClass:[NSData class]]) {//判断是否是二进制数据
[formData appendPartWithFileData:valuename:@"img"fileName:@"123.jpg"mimeType:@"image/png/jpg/jpeg"];
}else if ([value isKindOfClass:[UIImageclass]]){//如果不是二进制数据进行转换
NSData *data = [selfscaleImgWithImage:value Width:1080 DataBytes:200];//这个方法是自己写的压缩图片并转换
[formData appendPartWithFileData:dataname:@"img"fileName:@"123.jpg"mimeType:@"image/png/jpg/jpeg"];
}
}
} progress:^(NSProgress *_Nonnull uploadProgress) {
CGFloat progres = (CGFloat)uploadProgress.completedUnitCount / (CGFloat)uploadProgress.totalUnitCount;//这里是返回的上传图片进度,一定要用CGFloat进行接收
if (progress) {
progress(progres);
}
} success:^(NSURLSessionDataTask *_Nonnull task, id _Nullable responseObject) {
@try {//这里的responseObject也是一个二进制的数据,需要转换一下
NSDictionary *dic = [selfdataHandle:responseObject];
if (result) {
result(dic);
}
}
@catch (NSException *exception) {
if (errors) {
errors(exception.reason);
}
}
@finally {
}
} failure:^(NSURLSessionDataTask *_Nullable task, NSError *_Nonnull error) {
if (errors) {
errors(error.userInfo[@"NSLocalizedDescription"]);
}
}];
到这里就可以直接用这个方法了