iOS-快速实现上传认证资料(PhotoBrowser)

实现流程
1.布局(不列代码,展示图)

12.png

2.取得本地选择图片path

-(void)actionSheetStart:(NSString *)type{
    
    actionSheet = [[ZLPhotoActionSheet alloc] init];
    //设置照片最大选择数
    actionSheet.maxSelectCount = 1;
    //设置照片最大预览数
    actionSheet.maxPreviewCount = 20;
    [actionSheet showWithSender:self animate:YES completion:^(NSArray<UIImage *> * _Nonnull selectPhotos) {
        if (selectPhotos.count == 0) {
            return ;
        }
        [photosArray addObjectsFromArray:selectPhotos];
        
        
        for (UIImage *image  in selectPhotos) {
            [_selectImageArray removeAllObjects];
            [_selectImageArray addObjectsFromArray:selectPhotos];
            NSData *data;
            //返回为JPEG图像。
            data = UIImageJPEGRepresentation(image, 0.7);
            //保存
            //获取Documents文件夹目录
            NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
            NSString *documentPath = [path objectAtIndex:0];
            //指定新建文件夹路径
            NSString *imageDocPath = [documentPath stringByAppendingPathComponent:@"ImageIcoFile"];
            //创建ImageFile文件夹
            [[NSFileManager defaultManager] createDirectoryAtPath:imageDocPath withIntermediateDirectories:YES attributes:nil error:nil];
            NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
            [dateFormatter setDateFormat:@"YYYYMMddhhmmssSSS"];
            NSString *currentDay = [dateFormatter stringFromDate:[NSDate date]];//当前年月日
            
            //保存图片的路径
            NSString *imgPath = [imageDocPath stringByAppendingPathComponent:currentDay];
            imgPath = [NSString stringWithFormat:@"%@.png",imgPath];
            [[NSFileManager defaultManager] createFileAtPath:imgPath contents:data attributes:nil];
//调用上传图片方法
           [self subImageData:imgPath andImage:image type:@"3"];
            
             _imagepath = imgPath;
            if(_imagepath != nil){
                if ([self.updelegate respondsToSelector:@selector(PopImageString:andImage:withArr:type:)]) {
                    [self.updelegate PopImageString:_imagepath andImage:image withArr:updatedImageUrlArray type:type];
                }
                [self back];
            }
  
        }
   
    }];

}

3.将图片Path传给服务器取得服务器返回的"图片名称"(在选择确定了就上传给服务器了)

-(void)subImageData:(NSString *)imagePath andImage:(UIImage *)image type:(NSString *)type
{
    [MBProgressHUD showMessag:@"上传图片" toView:nil];
    NSString *userID = [UserManager sharedUserManager].user.userid;
    NSMutableDictionary *parameter = [NSMutableDictionary dictionaryWithCapacity:4];
    [parameter setValue:userID forKey:@"userid"];
    [parameter setValue:type forKey:@"type"];
    
    [[RequestManager shareManager] requestDataWithRequestType:GetUploadShowImage parameters:parameter filePath:imagePath httpMethod:KHTTPPOST completionHandler:^(ResponseItem *respones) {
        
        RequestStatus status = [respones.dataDic[KResult] integerValue];
        if (status == RequestStatusSuccess)
        {
            [MBProgressHUD hideHUDForView:nil animated:YES];
            NSString *imageURL = respones.dataDic[@"photo"];
            NSMutableDictionary *imageDic = [NSMutableDictionary dictionaryWithCapacity:4];
            [imageDic setObject:imageURL forKey:@"image"];
            [updatedImageUrlArray addObject:imageDic];
        }else
        {
            [self showHUDErrorWithStatus:@"图片上传失败"];
            [MBProgressHUD hideHUDForView:nil animated:YES];
            [photosArray removeObject:image];
        }
    } failedHandler:^(NSError *error) {
        [self showHUDErrorWithStatus:@"请求失败"];
        [MBProgressHUD hideHUDForView:nil animated:YES];
        [photosArray removeObject:image];
    }];
}

3.转JSON把服务器返回的"图片名称"提交给服务器

-(void)SubmitImageUrl:(NSMutableArray *)imageURLArray andType:(NSString *)type
{
    
    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:imageURLArray options:NSJSONWritingPrettyPrinted error:nil];
    NSString *imageUrlJson = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
    NSString *userID = [UserManager sharedUserManager].user.userid;
    NSMutableDictionary *parameter = [NSMutableDictionary dictionaryWithCapacity:4];
    [parameter setValue:userID forKey:@"userid"];
    [parameter setValue:type forKey:@"authenticateType"];
    [parameter setValue:imageUrlJson forKey:@"image"];
    
    
    [MBProgressHUD showMessag:@"正在提交" toView:nil];
    [[RequestManager shareManager]requestDataWithRequestType:AuditEntUser parameters:parameter filePath:@"" httpMethod:KHTTPPOST completionHandler:^(ResponseItem *respones) {
        NSLog(@"%@",respones.dataDic);
        [MBProgressHUD hideHUDForView:nil animated:YES];
        RequestStatus status = [respones.dataDic[KResult] integerValue];
        if (status == RequestStatusSuccess)
        {

            [self.view addSubview:self.pView];

        }else
        {
           
            
            
            [self showHUDErrorWithStatus:@"提交失败"];
        }
        
    } failedHandler:^(NSError *error) {
       
    
        [self showHUDErrorWithStatus:@"请求失败"];
    }];
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容

  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,072评论 0 3
  • 自1月15起来工作起,已经一个半月了,细想起来,总体上感觉自己稀稀疏疏,没有个样子,这不应该是我的作风,更重要的是...
    意守两眉阅读 265评论 0 0
  • A:同事前期一直被合作伙伴欺负、忽悠,经过这几天自己摸清了他们这几年的来龙去脉,找到了关键点 M:气愤 B:在合适...
    李鼎_6611阅读 144评论 0 0
  • 大付老师(付业兴),语文老师辞职,立志成为自由职业插画师,一晃做了十多年,也写过一些小诗,也是儿童美术培训机构金蓓...
    插画师付业兴阅读 137评论 0 4
  • 下夜班,晚上十点,开车回家。 白天只补觉两个小时左右,没睡够,有些恍惚。行车到红灯时,踩刹车,却发...
    明妙阅读 101评论 0 0