码迷,mamicode.com
首页 > Web开发 > 详细

AFHTTPRequestOperationManager注意点

时间:2014-12-23 17:25:21      阅读:298      评论:0      收藏:0      [点我收藏+]

标签:afhttprequestoperati

AFHTTPRequestOperationManager注意点


ActionSheet在控制器view上,因为点击拍照时,会modal出另外一个控制器,当前的控制器view就会从窗口中移除。就会报ActionSheet不在窗口上。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
   
UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:@"图片上传" delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:@"拍照", @"相册",nil];
    [sheet
showInView:self.view];
}

#pragma mark - 实现UIActionSheetDelegate代理方法
- (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];
}
注意:
技术分享
如果在switchcase中定义一个局部变量,需要用大括号括住。

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
   
// 关闭UIImagePickerController控制器
    [
self dismissViewControllerAnimated:YES completion:nil];
   
NSLog(@"%@",info);
   
// 获取图片
   
UIImage *image = info[UIImagePickerControllerOriginalImage];
   
self.imageV.image = image;
}
- (IBAction)upLoad
{
   
// 创建一个管理者
   
AFHTTPRequestOperationManager *manger = [AFHTTPRequestOperationManager manager];
   
// 设置参数
   
NSMutableDictionary *params = [NSMutableDictionary dictionary];
    params[
@"username"] = @"123";
    params[
@"pwd"] = @"123";
   
   
// 设置URL
   
NSString *url = @"http://192.168.15.56:8080/MJServer/upload";
    [manger
POST:url parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
          
          注意:
          在发送请求之前会自动调用这个block
       
需要在这个block中添加文件参数到formData

       
NSData *fileData = UIImageJPEGRepresentation(self.imageV.image, 1.0);
        [formData
appendPartWithFileData:fileData name:@"file" fileName:@"image.png" mimeType:@"image/png"];
    }
success:^(AFHTTPRequestOperation *operation, id responseObject) {
       
NSLog(@"上传成功");
    }
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
       
NSLog(@"上传失败");
    }];
}


注意:
1.保留照片的质量
NSData *fileData = UIImageJPEGRepresentation(self.imageV.image1.0);

2.AFN不能监听文件的上传进度,ASI可以监听文件的上传进度。

3.需要上传的文件的具体数据
FileData : 需要上传的文件的具体数据
name :
服务器那边接收文件用的参数名
fileName :
(告诉服务器)所上传文件的文件名
mimeType :
所上传文件的文件类型

NSData *fileData = UIImageJPEGRepresentation(self.imageV.image, 1.0);
[formData
appendPartWithFileData:fileData name:@"file" fileName:@"image.png" mimeType:@"image/png"];

4.需要上传的文件的URL路径
FileURL : 需要上传的文件的URL路径
name :
服务器那边接收文件用的参数名
fileName :
(告诉服务器)所上传文件的文件名
mimeType :
所上传文件的文件类型

NSURL *url = [[NSBundle mainBundle] URLForResource:@"itcast" withExtension:@"txt"];
[formData
appendPartWithFileURL:url name:@"file" fileName:@"test.txt" mimeType:@"text/plain" error:nil];

AFHTTPRequestOperationManager注意点

标签:afhttprequestoperati

原文地址:http://blog.csdn.net/itcontend/article/details/42104777

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!