#import "AFNetworking.h"
/**
* 上传带图片的内容,允许多张图片上传(URL)POST
*
* @param url 传url
* @param images 要上传的图片数组(注意数组内容需是图片)
* @param parameter 图片数组对应的参数 可以为nil
* @param parameters 其他参数字典 可以为nil
* @param ratio 图片的压缩比例(0.0~1.0之间)
* @param succeedBlock 成功的回调
* @param failedBlock 失败的回调
*/
-(void)startMultiPartUploadTaskWithURL:(NSString *)url
imagesArray:(NSArray *)images
parameterOfimages:(NSString *)parameter
parametersDict:(NSDictionary *)parameters
compressionRatio:(float)ratio
succeedBlock:(void (^)(NSDictionary *dict))succeedBlock
failedBlock:(void (^)(NSError *error))failedBlock;
//–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
/**
* 多图上传
*/
-(void)startMultiPartUploadTaskWithURL:(NSString *)url imagesArray:(NSArray *)images parameterOfimages:(NSString *)parameter parametersDict:(NSDictionary *)parameters compressionRatio:(float)ratio succeedBlock:(void (^)(NSDictionary *dict))succeedBlock failedBlock:(void (^)(NSError *error))failedBlock{
if (images.count == 0) {
NSLog(@"图片数组计数为零");
return;
}
for (int i = 0; i < images.count; i++) {
if (![images[i] isKindOfClass:[UIImage class]]) {
NSLog(@"images中第%d个元素不是UIImage对象",i+1);
}
}
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
//以下三项manager的属性根据需要进行配置
// manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html" @"text/json" @"text/javascript" @"text/plain"];
// manager.requestSerializer = [AFHTTPRequestSerializer serializer];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
[manager POST:url parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
int i = 0;
//根据当前系统时间生成图片名称
NSDate *date = [NSDate date];
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:@"yyyy年MM月dd日"];
NSString *dateString = [formatter stringFromDate:date];
for (UIImage *image in images) {
NSString *fileName = [NSString stringWithFormat:@"%@%d.png",dateString,i];
NSData *imageData;
if (ratio > 0.0f && ratio < 1.0f) {
imageData = UIImageJPEGRepresentation(image, ratio);
}else{
imageData = UIImageJPEGRepresentation(image, 1.0f);
}
[formData appendPartWithFileData:imageData name:parameter fileName:fileName mimeType:@"image/jpg/png/jpeg"];
}
} progress:^(NSProgress * _Nonnull uploadProgress) {
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSString * newStr = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
NSLog(@"5959595959=%@=",newStr);
// NSArray *array = [newStr componentsSeparatedByString:@".png"];
NSMutableArray *array = [newStr componentsSeparatedByString:@"SystemFile"];
NSLog(@"999999---%@",array);
for (int i = 0; i<array.count; i++) {
if ([self isBlankString:array[i]]==YES){
[array removeObjectAtIndex:i];
}
}
NSLog(@"999999--1111111-%@",array);
// NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingAllowFragments error:nil];
NSLog(@"common post json = %@", dict);
succeedBlock(dict);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
if (error) {
failedBlock(error);
NSLog(@"%@",error);
}
}];
}