iOS 使用AFNetworking實現多張圖片上傳
#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
succeedBlock:(void (^)(NSDictionary *dict))succeedBlock
failedBlock:(void (^)(NSError *error))failedBlock;
//–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
/**
* 多圖上傳
*/
-(void)startMultiPartUploadTaskWithURL:(
if (images.count == 0) {
NSLog(@"圖片陣列計數為零");
return;
}
for (int i = 0; i < images.count; i++) {
if (![images[i] isKindOfClass:[UIImageclass]]) {
NSLog(@"images中第%d個元素不是UIImage物件",i+1);
}
}
AFHTTPSessionManager *manager = [AFHTTPSessionManagermanager];
//以下三項manager的屬性根據需要進行配置
// manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html" @"text/json" @"text/javascript" @"text/plain"];
// manager.requestSerializer = [AFHTTPRequestSerializer serializer];
manager.responseSerializer = [AFHTTPResponseSerializerserializer];
[manager POST:url parameters:nilconstructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
int i = 0;
//根據當前系統時間生成圖片名稱
NSDate *date = [NSDatedate];
NSDateFormatter *formatter = [[NSDateFormatteralloc]init];
[formatter setDateFormat:@"yyyy年MM月dd日"];
NSString *dateString = [formatter stringFromDate:date];
for (UIImage *image in images) {
NSString *fileName = [NSStringstringWithFormat:@"%@%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 = [[NSStringalloc] 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 ([selfisBlankString:array[i]]==YES){
[array removeObjectAtIndex:i];
}
}
NSLog(@"999999--1111111-%@",array);
// NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];
NSDictionary *dict = [NSJSONSerializationJSONObjectWithData:responseObject options:NSJSONReadingAllowFragmentserror:nil];
NSLog(@"common post json = %@", dict);
succeedBlock(dict);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
if (error) {
failedBlock(error);
NSLog(@"%@",error);
}
}];
}