网络篇----第三方框架AFN02 文件上传
AFN上传方法是使用post,AFNpost 方法有两个
1、constructingBodyWithBlock 有这个的话,是使用上传文件的时候调用这个方法
- (AFHTTPRequestOperation *)POST:(NSString *)URLString
parameters:(id)parameters
constructingBodyWithBlock:(void (^)(id <AFMultipartFormData> formData))block
success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure
2、下面这个post方法是 使用在简单的登陆和查看文件的时候使用
- (AFHTTPRequestOperation *)POST:(NSString *)URLString
parameters:(id)parameters
success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failu
3、文件上传事咧
// 1.创建一个管理者 AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager]; // 2.封装参数(这个字典只能放非文件参数) NSMutableDictionary *params = [NSMutableDictionary dictionary]; params[@"username"] = @"123"; params[@"age"] = @20; params[@"pwd"] = @"456"; params[@"height"] = @1.55; // 2.发送一个请求 NSString *url = @"http://192.168.15.172:8080/MJServer/upload"; [mgr POST:url parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { NSData *fileData = UIImageJPEGRepresentation(self.imageView.image, 1.0); [formData appendPartWithFileData:fileData name:@"file" fileName:@"haha.jpg" mimeType:@"image/jpeg"]; // 不是用这个方法来设置文件参数 // [formData appendPartWithFormData:fileData name:@"file"]; } success:^(AFHTTPRequestOperation *operation, id responseObject) { NSLog(@"上传成功"); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"上传失败"); }];
4、使用sheet选择调用照相机和相册
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex { UIImagePickerController *ipc = [[UIImagePickerController alloc] init]; // 设置代理 ipc.delegate = self; switch (buttonIndex) { case 0: { // 拍照 if (![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) return; ipc.sourceType = UIImagePickerControllerSourceTypeCamera; break; } case 1: { // 相册 if (![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) return; ipc.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; break; } default: break; } // 显示控制器 [self presentViewController:ipc animated:YES completion:nil]; }