发个广告: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);
}];
}