iOS 使用AFNetworking实现多张图片上传
来源:互联网 发布:windows 10 dpi 编辑:程序博客网 时间:2024/06/08 16:43
#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:[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];
[managerPOST:url parameters:nilconstructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
int i =0;
//根据当前系统时间生成图片名称
NSDate *date = [NSDatedate];
NSDateFormatter *formatter = [[NSDateFormatteralloc]init];
[formatter setDateFormat:@"yyyy年MM月dd日"];
NSString *dateString = [formatterstringFromDate:date];
for (UIImage *imagein 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:imageDataname:parameter fileName:fileNamemimeType:@"image/jpg/png/jpeg"];
}
} progress:^(NSProgress *_Nonnull uploadProgress) {
} success:^(NSURLSessionDataTask *_Nonnull task, id _Nullable responseObject) {
NSString * newStr = [[NSStringalloc] initWithData:responseObjectencoding:NSUTF8StringEncoding];
NSLog(@"5959595959=%@=",newStr);
// NSArray *array = [newStr componentsSeparatedByString:@".png"];
NSMutableArray *array = [newStrcomponentsSeparatedByString:@"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:responseObjectoptions:NSJSONReadingAllowFragmentserror:nil];
NSLog(@"common post json = %@", dict);
succeedBlock(dict);
} failure:^(NSURLSessionDataTask *_Nullable task, NSError *_Nonnull error) {
if (error) {
failedBlock(error);
NSLog(@"%@",error);
}
}];
}
- iOS开发 使用AFNetworking实现多张图片上传
- iOS 使用AFNetworking实现多张图片上传
- iOS AFNetworking 上传多张图片
- AFNetworking实现多张图片上传
- 多张图片上传afnetworking
- AFNetworking上传多张图片
- ios 上传多张图片总结——IOS网络访问之使用AFNetworking
- ios 上传多张图片总结——IOS网络访问之使用AFNetworking
- iOS学习笔记:afnetworking上传多张图片
- AFNetworking 2.0+ 上传单张/多张图片
- AFNetworking 2.0+ 上传单张/多张图片
- AFNetWorking同时上传多张图片方式
- iOS 使用AFNet上传图片(多张)
- iOS- 利用AFNetworking(AFN) - 实现图片上传 -
- iOS利用AFNetworking(AFN) 实现图片上传
- iOS- 利用AFNetworking(AFN) - 实现图片上传
- iOS- 利用AFNetworking(AFN) - 实现图片上传
- iOS- 利用AFNetworking(AFN) - 实现图片上传
- C++Operator
- NSString , NSArray和NSDictionary的遍历方式
- JVM实用参数(六) 吞吐量收集器
- eclipse新建workspace如何保留之前的相关设置
- Class.getResourceAsStream(path)与Thread.currentThread().getContextClassLoader().getResourceAsStream
- iOS 使用AFNetworking实现多张图片上传
- Android_实现省市区(县)三级联动效果
- Extern templates
- js需要把时间戳转为为普通格式
- 利用分类实现功能
- TQEditor logo网页在线编辑器 TQEditor
- poj 1273 hdu 1532 网络流最大流 Dinic算法
- bzoj1503郁闷的出纳员 Splay
- SysLetvPlayerLib无法播放本地视频