使用AFN上傳一張或多張圖片
-(void)upLoadImage:(NSMutableDictionary *)parametersDic url:(NSString *)strMethod image:(UIImage *)image requestTag:(int)tag withObj:(id)obj andImage2:(UIImage *)image2
{
//parametersDic 請(qǐng)求的參數(shù) strMethod:請(qǐng)求的方法 image上傳的第一張圖片 image2:上傳的第二張圖片 obj:nil tag :1
//定義數(shù)組用來(lái)保存多張圖片
NSArray *dataArray =nil;
//將圖片轉(zhuǎn)換為data
NSData *imagedata= UIImageJPEGRepresentation(image, 0.2);//0.2為壓縮倍數(shù)
NSData *imagedata2= UIImageJPEGRepresentation(image2,0.2);
NSString *format = @"jpg";
NSString *Suffix = @"jpeg";
//判斷是png jpg格式
if (imagedata == nil || imagedata2 == nil) {
imagedata = UIImagePNGRepresentation(image);
imagedata2 = UIImagePNGRepresentation(image2);
format = @"png";
Suffix = @"png";
}
//判斷有幾張圖片
if (image2 == nil) {
dataArray = @[imagedata];
}else{
dataArray= @[imagedata,imagedata2];
}
//對(duì)應(yīng)的URL
NSString *urltmps=[[NSString stringWithFormat:@"%@%@.action",Host_url,strMethod] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
//創(chuàng)建請(qǐng)求
NSMutableURLRequest *request=[[AFHTTPRequestSerializer serializer]multipartFormRequestWithMethod:@"POST" URLString:urltmps parameters:parametersDic constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
//多張圖片的時(shí)候才使用循環(huán)誊爹,單張 圖片不用
for (NSInteger i = 0; i<dataArray.count; i++) {
//獲取當(dāng)前日期時(shí)間作為文件名稱
NSDateFormatter *formatter=[[NSDateFormatter alloc]init];
formatter.dateFormat=@"yyyyMMddHHmmss";
NSString *str=[formatter stringFromDate:[NSDate date]];
NSString *fileName=[NSString stringWithFormat:@"%@%zd.%@",str,i+1,format];
//對(duì)應(yīng)接口文檔上傳的圖片的類型名稱瑰枫,這里是file1和file2
NSString *file = [NSString stringWithFormat:@"file%zd",i+1];
[formData appendPartWithFileData:dataArray[i] name:file fileName:fileName mimeType:[NSString stringWithFormat:@"image/%@",Suffix]];
}
} error:nil];
AFURLSessionManager *manager=[[AFURLSessionManager alloc]initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
manager.responseSerializer=[AFHTTPResponseSerializer serializer];
NSURLSessionUploadTask *uploadTask=[manager uploadTaskWithStreamedRequest:request progress:nil completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {
if (error)
{
// [self RequestResult:nil requestTag:tag withObj:obj];
NSLog(@“上傳失敗”);
}
else
{
//json解析
NSDictionary *resultDic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableLeaves error:nil];
// [self RequestResult:resultDic requestTag:tag withObj:obj];
}
}];
//執(zhí)行奸鸯,沒(méi)有這句是不會(huì)執(zhí)行的
[uploadTask resume];
}