视频直播源码中的头像上传展示

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yun_bao_2144899870/article/details/88118045

在大部分app中,登录注册是必不可少的功能,那么头像的上传与更改就必不可少了。下面简单的举例解释下 视频直播源码中iOS开发中如何使用AFNetworking进行图片上传,这里是上传到服务器。
具体流程就是首先从相机或者相册(这里以相册为例)取到需要上传,然后转成image,再利用AFNetworking进行上传。
视频直播源码代码示列如下:

//从相册选择图片
- (IBAction)xiangce:(id)sender {
        UIImagePickerController *imagePickerController = [UIImagePickerController new];
        imagePickerController.allowsEditing = YES;
        imagePickerController.delegate = self;
        imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
        imagePickerController.allowsEditing = YES;
        [self presentViewController:imagePickerController animated:YES completion:nil];
}
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info{
        NSString *type = [info objectForKey:UIImagePickerControllerMediaType];
        if ([type isEqualToString:@"public.image"])
            {
                    //先把图片转成NSData
                    UIImage* image = [info objectForKey:@"UIImagePickerControllerEditedImage"];
                    NSData *data;
                    if (UIImagePNGRepresentation(image) == nil){
                        data = UIImageJPEGRepresentation(image, 1.0);
                    }
                    else{
                        data = UIImagePNGRepresentation(image);
                    }
                    //图片保存的路径
                    NSString * DocumentsPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
                    NSFileManager *fileManager = [NSFileManager defaultManager];
                    //把刚刚图片转换的data对象拷贝至沙盒中 并保存为image.png
                    [fileManager createDirectoryAtPath:DocumentsPath withIntermediateDirectories:YES attributes:nil error:nil];
                    [fileManager createFileAtPath:[DocumentsPath stringByAppendingString:@"/image.png"] contents:data attributes:nil];
                    //得到选择后沙盒中图片的完整路径
                    filePath = [[NSString alloc]initWithFormat:@"%@%@",DocumentsPath, @"/image.png"];
                    imageURL = [NSURL URLWithString:filePath];
                    AFHTTPSessionManager *session = [AFHTTPSessionManager manager];
                    NSString *url = [purl stringByAppendingFormat:@"?service=User.updateAvatar&uid=%@&token=%@",[Config getOwnID],[Config getOwnToken]];
                    [session POST:url parameters:nil  constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
                    if (image) {
                            [formData appendPartWithFileData:[Utils compressImage:image] name:@"file" fileName:@"duibinaf.png" mimeType:@"image/jpeg"];
                        }
                }
                                   progress:nil success:^(NSURLSessionDataTask *task, id responseObject) {
                                           //NSLog(@"%@",responseObject);
                                           NSLog(@"-------%@",responseObject);
                                           NSArray *data = [responseObject valueForKey:@"data"];
                                           NSString *ret = [NSString stringWithFormat:@"%@",[responseObject valueForKey:@"ret"]];
                                           if ([ret isEqual:@"200"]) {
                                               NSNumber *number = [data valueForKey:@"code"] ;
                                               if([number isEqualToNumber:[NSNumber numberWithInt:0]])
                                                   {
                                     //                      [[SDImageCache sharedImageCache] clearDisk];
                                                           [[SDImageCache sharedImageCache] clearMemory];//可有可无
                                                           NSString *info = [[data valueForKey:@"info"] firstObject];
                                                           NSString *avatar = [info valueForKey:@"avatar"];
                                                           NSString *avatar_thumb = [info valueForKey:@"avatar_thumb"];
                                                           [self.iconBTN sd_setBackgroundImageWithURL:[NSURL URLWithString:avatar] forState:UIControlStateNormal];
                                                           LiveUser *user = [[LiveUser alloc]init];
                                                           user.avatar = avatar;
                                                           user.avatar_thumb = avatar_thumb;
                                                           [Config updateProfile:user];
                                                       }
                                                    }
                                           else{
                                                   [MBProgressHUD showError:[responseObject valueForKey:@"msg"]];
                                               }
                                       }
                                   failure:^(NSURLSessionDataTask *task, NSError *error)
                              {
                                      [MBProgressHUD showError:YZMsg(@"上传失败")];
                                  }];
                     [picker dismissViewControllerAnimated:YES completion:nil];
                }
}

以上就是视频直播源码中iOS开发中使用AFNetworking进行图片上传代码示列,这里只是介绍从手机相册上传到服务器的简单流程。如有想了解更多关于视频直播源码开发的知识,可以咨询官方客服,我们都会为您详细解答。
声明:原创文章,转载请注明出处及作者。

猜你喜欢

转载自blog.csdn.net/yun_bao_2144899870/article/details/88118045
今日推荐