iOS应用上传个人头像
2017-02-13 15:50
274 查看
上传个人头像,可以说每个app都会有此功能,可以从相册里面选择图片,也可以从摄像头获取图片。废话不多说,直接上代码,仅供参考!以后可以考虑把我的工具类贴出来,等我把他完善些再说吧!
#pragma mark - 上传一张图片
- (void)upLoadingOneImageWithName:(NSString *)picName currentController:(ViewController *)viewController success:(successBlock)success failure:(failedBlock)failure;
{
_picName = picName;
_viewController = viewController;
_success = success;
_failure = failure;
[self re_election];
}
#pragma mark 上传头像
-(void)re_election
{
_photoActionSheet = [[UIActionSheet alloc]initWithTitle:nil delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:@"本地相册上传" otherButtonTitles:@"拍照上传", nil];
[_photoActionSheet showInView:_viewController.view];
}
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
if ([actionSheet isEqual:_photoActionSheet])
{
switch (buttonIndex) {
case 0:
[self localPhoto];
break;
case 1:
[self takePhoto];
break;
default:
break;
}
}
}
//本地图片
-(void)localPhoto
{
if (pickerController == nil)
{
pickerController = [UIImagePickerController new];
pickerController.delegate = self;
pickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
//设置选择后的图片可被编辑
pickerController.allowsEditing = YES;
pickerController.videoQuality = UIImagePickerControllerQualityTypeLow;
}
[_viewController presentViewController:pickerController animated:YES completion:nil];
}
//拍照
- (void)takePhoto
{
UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypeCamera;
if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera])
{
pickerController=[UIImagePickerController new];
pickerController.delegate=self;
//设置拍照后的图片可被编辑
pickerController.allowsEditing=YES;
pickerController.sourceType=sourceType;
pickerController.showsCameraControls=YES;
[_viewController presentViewController:pickerController animated:YES completion:nil];
}else
{
NSLog(@"模拟其中无法打开照相机,请在真机中使用");
}
}
#pragma mark 当选择一张图片后进入这里
-(void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
NSString *type;
type = [info objectForKey:UIImagePickerControllerMediaType];
//当选择的类型是图片
if ([type isEqualToString:@"public.image"])
{
//先把图片转成NSData
UIImage * image;
image= [info objectForKey:@"UIImagePickerControllerEditedImage"];
[self setImage:image];
}
[picker dismissViewControllerAnimated:YES completion:nil];
}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
[picker dismissViewControllerAnimated:YES completion:nil];
}
-(void)setImage:(UIImage*)image
{
NSDictionary *dict = [MyData fileManager:@"user"];
[self deleteOneImage:dict[@"pic"] BlockWithSuccess:^(NSDictionary *dic) {
[self ossPostImage:@{@"image":image, @"name":_picName} BlockWithSuccess:^(NSDictionary *dic) {
_success(dic);
_success = nil;
_picName = nil;
_viewController = nil;
} failedBlock:^(NSError *error) {
_failure(error);
_failure = nil;
_picName = nil;
_viewController = nil;
}];
} failedBlock:^(NSError *error) {
_failure(error);
_failure = nil;
_picName = nil;
_viewController = nil;
}];
}
封装好了,以后就是一句代码的事,比较简单,参考一下吧!
#pragma mark - 上传一张图片
- (void)upLoadingOneImageWithName:(NSString *)picName currentController:(ViewController *)viewController success:(successBlock)success failure:(failedBlock)failure;
{
_picName = picName;
_viewController = viewController;
_success = success;
_failure = failure;
[self re_election];
}
#pragma mark 上传头像
-(void)re_election
{
_photoActionSheet = [[UIActionSheet alloc]initWithTitle:nil delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:@"本地相册上传" otherButtonTitles:@"拍照上传", nil];
[_photoActionSheet showInView:_viewController.view];
}
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
if ([actionSheet isEqual:_photoActionSheet])
{
switch (buttonIndex) {
case 0:
[self localPhoto];
break;
case 1:
[self takePhoto];
break;
default:
break;
}
}
}
//本地图片
-(void)localPhoto
{
if (pickerController == nil)
{
pickerController = [UIImagePickerController new];
pickerController.delegate = self;
pickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
//设置选择后的图片可被编辑
pickerController.allowsEditing = YES;
pickerController.videoQuality = UIImagePickerControllerQualityTypeLow;
}
[_viewController presentViewController:pickerController animated:YES completion:nil];
}
//拍照
- (void)takePhoto
{
UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypeCamera;
if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera])
{
pickerController=[UIImagePickerController new];
pickerController.delegate=self;
//设置拍照后的图片可被编辑
pickerController.allowsEditing=YES;
pickerController.sourceType=sourceType;
pickerController.showsCameraControls=YES;
[_viewController presentViewController:pickerController animated:YES completion:nil];
}else
{
NSLog(@"模拟其中无法打开照相机,请在真机中使用");
}
}
#pragma mark 当选择一张图片后进入这里
-(void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
NSString *type;
type = [info objectForKey:UIImagePickerControllerMediaType];
//当选择的类型是图片
if ([type isEqualToString:@"public.image"])
{
//先把图片转成NSData
UIImage * image;
image= [info objectForKey:@"UIImagePickerControllerEditedImage"];
[self setImage:image];
}
[picker dismissViewControllerAnimated:YES completion:nil];
}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
[picker dismissViewControllerAnimated:YES completion:nil];
}
-(void)setImage:(UIImage*)image
{
NSDictionary *dict = [MyData fileManager:@"user"];
[self deleteOneImage:dict[@"pic"] BlockWithSuccess:^(NSDictionary *dic) {
[self ossPostImage:@{@"image":image, @"name":_picName} BlockWithSuccess:^(NSDictionary *dic) {
_success(dic);
_success = nil;
_picName = nil;
_viewController = nil;
} failedBlock:^(NSError *error) {
_failure(error);
_failure = nil;
_picName = nil;
_viewController = nil;
}];
} failedBlock:^(NSError *error) {
_failure(error);
_failure = nil;
_picName = nil;
_viewController = nil;
}];
}
封装好了,以后就是一句代码的事,比较简单,参考一下吧!
相关文章推荐
- IOS开发从手机相册中上传头像到APP的个人中心同时保存到数据库
- TFTP服务器在Cisco设备上的应用(上传、下载IOS)
- TFTP服务器在Cisco设备上的应用(上传、下载IOS)
- iOS应用上传AppStore验证UUID不过的解决方法
- iOS应用内HTTP服务上传文件
- appcan ios 应用 上传指导
- TFTP服务器在Cisco设备上的应用(上传、下载IOS)
- 二进制数据流方式实现 个人头像的读取、上传、修改------善良公社项目
- ios 应用上传发布流程
- [iOS]应用上传APPStore需要注意的问题
- ios 上传头像 从本地获取照片、拍照及剪裁并上传到界面上
- Flash开发iOS应用全攻略(五)——如何上传应用到iTunes Connect
- Flash开发iOS应用全攻略(五)——如何上传应用到iTunes Connect
- iOS 6已将应用擅自收集个人信息现象封杀
- Flash开发iOS应用全攻略(五)——如何上传应用到iTunes Connect
- TFTP服务器在Cisco设备上的应用(上传、下载IOS)
- Flash开发iOS应用全攻略(五)——如何上传应用到iTunes Connect
- ios 头像上传
- ios应用的分发和上传
- 二进制数据流方式实现 个人头像的读取、上传、修改------善良公社项目