上传图片流

发个广告:iOS开发两年了,一步步走来,从小白到大白,有自己的新的体验  关注公众号一起进步,有技术、工具分享



URL不要少了三个字母…导致我已连接服务器就404  …….啥也不说了整个上传步骤如下TT


注:本文纯属个人纪录所用   抄袭而来 ——留记


第一步//获取图片

  

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

   

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

      [actionSheet dismissViewControllerAnimated:YEScompletion:^{

          

          

          

      }];

   }];

   

   

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

      

       [selfreloadImagesFromLibrary];

       

       

   }];

   

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

      

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

       

      if([UIImagePickerControllerisSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]){

          

          picker.sourceType =UIImagePickerControllerSourceTypeCamera;

          

          NSArray *temp_MediaTypes =[UIImagePickerControlleravailableMediaTypesForSourceType:picker.sourceType];

          

          picker.mediaTypes =temp_MediaTypes;

          

          picker.delegate =self;

          

          picker.allowsEditing =YES;

          

      }

       

       

       [selfpresentViewController:picker animated:YES completion:^{

          

      }];

       

       

   }];

   

   [actionSheet addAction:PhotoAlbum];

   [actionSheet addAction:camera];

   [actionSheet addAction:cancel];

   

   

   [selfpresentViewController:actionSheet animated:YEScompletion:^{

      

  }];




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

-(void)imagePickerController:(UIImagePickerController *)pickerdidFinishPickingMediaWithInfo:(NSDictionary *)info{

   

   [self dismissViewControllerAnimated:YEScompletion:nil];


   UIImage *image = [infoobjectForKey:UIImagePickerControllerOriginalImage];

   

   [self.frontIDCard setImage:[imageimageWithRenderingMode:1]forState:UIControlStateNormal];


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

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

  

}


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

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

   

   [picker dismissViewControllerAnimated:YEScompletion:^{

       

   }];

}


//更改图片大小

- (UIImage *)image:(UIImage*)imagebyScalingToSize:(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;

    

    [sourceImagedrawInRect:thumbnailRect];

    

    newImage =UIGraphicsGetImageFromCurrentImageContext();

   UIGraphicsEndImageContext();

    

    return newImage ;

}


//传图片流

- (void)postImages{

   


   AFHTTPRequestOperationManager *manager =[AFHTTPRequestOperationManager manager];

   manager.responseSerializer =[AFHTTPResponseSerializer serializer];

   

  

   [manager POST:Period parameters:nilconstructingBodyWithBlock:^(id 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 = [formatterstringFromDate:[NSDate date]];

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

           [formDataappendPartWithFileData:imageData name:str fileName:fileNamemimeType:@"image/jpeg"];

       }

    }

        success:^(AFHTTPRequestOperation *operation, idresponseObject)

    {

       

        NSString*result = [[NSString alloc] initWithData:responseObjectencoding:NSUTF8StringEncoding];

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

    }

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

    {

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

    }];

  

   

 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值