上传图片流到服务器(AFN方法) (多张图片)(图片流)

第一步//获取图片

UIAlertController *actionSheet = [UIAlertController alertControllerWithTitle:@"添加照片" message:nil preferredStyle:UIAlertControllerStyleActionSheet];

UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) {

[actionSheet dismissViewControllerAnimated:YES completion:^{

}];

}];

UIAlertAction *PhotoAlbum = [UIAlertAction actionWithTitle:@"从相册获取" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {

[self reloadImagesFromLibrary];

}];

UIAlertAction *camera = [UIAlertAction actionWithTitle:@"从摄像头获取" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {

UIImagePickerController *picker = [[UIImagePickerController alloc] init];

if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {

picker.sourceType = UIImagePickerControllerSourceTypeCamera;

NSArray *temp_MediaTypes = [UIImagePickerController availableMediaTypesForSourceType:picker.sourceType];

picker.mediaTypes = temp_MediaTypes;

picker.delegate = self;

picker.allowsEditing = YES;

}

[self presentViewController:picker animated:YES completion:^{

}];

}];

[actionSheet addAction:PhotoAlbum];

[actionSheet addAction:camera];

[actionSheet addAction:cancel];

[self presentViewController:actionSheet animated:YES completion:^{

}];

//这个是调用摄像头的回调方法

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{

[self dismissViewControllerAnimated:YES completion:nil];

UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];

[self.frontIDCard setImage:[image imageWithRenderingMode:1] forState:UIControlStateNormal];

//因为要上传多张照片所以放到一个数组里 (要注意控制图片的尺寸和质量)

[self.postImageArr addObject:[self image:image byScalingToSize:CGSizeMake(400, 800)]];

}

//这个是选取拍摄的照片的方法

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{

[picker dismissViewControllerAnimated:YES completion:^{

}];

}

//更改图片大小

- (UIImage *)image:(UIImage*)image byScalingToSize:(CGSize)targetSize {

UIImage *sourceImage = image;

UIImage *newImage = nil;

UIGraphicsBeginImageContext(targetSize);

CGRect thumbnailRect = CGRectZero;

thumbnailRect.origin = CGPointZero;

thumbnailRect.size.width  = targetSize.width;

thumbnailRect.size.height = targetSize.height;

[sourceImage drawInRect:thumbnailRect];

newImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

return newImage ;

}

//传图片流

- (void)postImages {

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

manager.responseSerializer = [AFHTTPResponseSerializer serializer];

[manager POST:Period parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData)

{

//
上传 多张图片

for(NSInteger i = 0; i < self.postImageArr.count; i++) {

NSData * imageData = UIImageJPEGRepresentation([self.postImageArr objectAtIndex: i], 0.5);

//
上传的参数名

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

formatter.dateFormat = @"yyyyMMddHHmmss";

NSString *str = [formatter stringFromDate:[NSDate date]];

NSString *fileName = [NSString stringWithFormat:@"%@.jpg", str];

[formData appendPartWithFileData:imageData name:str fileName:fileName mimeType:@"image/jpeg"];

}

}

success:^(AFHTTPRequestOperation *operation, id responseObject)

{

NSString *result = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];

NSLog(@"完成 %@", result);

}

failure:^(AFHTTPRequestOperation *operation, NSError *error)

{

NSLog(@"错误 %@", error.localizedDescription);

}];

}

最新文章

  1. java获取时间戳的方法
  2. Coremail邮件系统存储型XSS两个
  3. JQ 选择器大全
  4. [译]CSS content
  5. datatables配置及数据传输
  6. sql management studio 附加mdf文件出错的解决办法
  7. Html 小插件7 新闻免费代码
  8. Maven项目红色叹号+JavaWeb: 报错信息The superclass &amp;quot;javax.servlet.http.HttpServlet&amp;quot; was not found on the Java B
  9. BNU OJ 51005 BQG&#39;s Quadrilateral Bricks
  10. salesforce 零基础学习(六十八)http callout test class写法
  11. iOS App签名的原理
  12. 【Django】Django与jinja的不同
  13. [C#]使用Process的StandardInput与StandardOutput写入读取控制台数据
  14. 从“思考”的角度来看如何成为一名优质的Java架构师
  15. ABP框架源码学习之修改默认数据库表前缀或表名称
  16. css基础之line-height
  17. [日常] CentOS安装最新版redis设置远程连接密码
  18. 学习笔记:Oracle的trace文件可见性
  19. Linux基础-host文件解析
  20. canvas猜数游戏

热门文章

  1. (Inside Out) Web地图坐标系——TDT的奇妙
  2. 【Hibernate步步为营】--hql查询小介
  3. 几个很实用的BOM属性对象方法
  4. 设置tomcat配置文件,在Myeclipse中修改jsp文件之后不用重启tomcat
  5. jsp button提交表单
  6. (转)scala中map与flatMap浅析
  7. Jfinal极速开发微信系列教程(二)--------------让微信公众平台通过80端口访问本机
  8. 【Hibernate一】概述及入门
  9. python3 http.client 网络请求
  10. JDK1.5 AtomicLong实例