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

调用相机并且上传照片的方法

时间:2015-08-06 13:39:25      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:

#import "ViewController.h"
#import "AFNetworking.h"
@interface ViewController () <UIActionSheetDelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate>

@property (weak, nonatomic) IBOutlet UIImageView *imageView;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:@"请选择照片" delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:@"相机",@"相册", nil];
    /**
     *  window代表着最高处,所有能看到的view,后面都是window。
     *  当push相机控制器的时候,self.view就自动移除了。而当dismiss控制器的时候,因为self.view移除了,所有sheet无法寄居在view的上面,而固定在self.view.window,就可以保证,sheet一定在view视图上
     */
    [sheet showInView:self.view.window];
    
}

-(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:
            return;
            break;
    }
    [self presentViewController:ipc animated:YES completion:nil];
}

/**
 *  选择完照片后调用的方法
 *
 *
 *  @param info   所有相片的信息都在这个字典
 */
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    [self dismissViewControllerAnimated:YES completion:nil];
    
    //从字典key获取image的地址
    UIImage *image = info[UIImagePickerControllerOriginalImage];
    
    self.imageView.image = image;
    
    
}

- (IBAction)upload:(UIButton *)sender {
    
    AFHTTPRequestOperationManager *mrg = [[AFHTTPRequestOperationManager alloc] init];
    
    NSMutableDictionary *params = [NSMutableDictionary dictionary];
    params[@"username"] = @"123";

    
     NSString *url = @"http://192.168.130.110:8080/MJServer/upload";
    
    /**
     *  上传时候调用的方法
     *
     *  params   post的参数,字典
     *  formData formData是post上去的数据
     *  name     服务器接受文件的名字
     *  fileName 文件的名字
     */
    [mrg POST:url parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
       
        NSData *data = UIImageJPEGRepresentation(self.imageView.image, 1.0);
        [formData appendPartWithFileData:data name:@"file" fileName:@"1.jpg" mimeType:@"image/jpeg"];
        
    } success:^(AFHTTPRequestOperation *operation, id responseObject) {
        
        NSLog(@"上传成功");
        
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
       
        NSLog(@"上传失败");
    }];

}
@end


调用相机并且上传照片的方法

标签:

原文地址:http://my.oschina.net/u/2346786/blog/488579

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