美文网首页
iOS AFNetworking与PPNetworkHelper

iOS AFNetworking与PPNetworkHelper

作者: 达_Ambition | 来源:发表于2018-06-20 12:02 被阅读94次
    一、AFNetworking上传一张或多张图片
    #pragma mark - 上传数据到服务器前将图片转data(上传服务器用form表单:)
    - (void)submitToServer{
        NSMutableDictionary *params = [NSMutableDictionary dictionary];
        params[@"type"] = @"1";
        params[@"uid"] = [USER_DEFAULT valueForKey:@"uid"];
        params[@"cont"] = _noteTextView.text;
        NSLog(@"----%@",params);
        
        __block NSString *imgStr;
        AFHTTPSessionManager *operation = [AFHTTPSessionManager manager];
        operation.requestSerializer = [AFHTTPRequestSerializer serializer]; // 申明返回的结果是json类型
        operation.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"];
        [operation POST:UPLOAD_IMG parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
            //根据当前系统时间生成图片名称
            for (int i = 0; i<self.imageArray.count; i++) {
                
                NSString *fileName = [NSString stringWithFormat:@"image%d.png",i];
                UIImage *image = self.imageArray[i];
                NSData *imageData;
                imageData = UIImageJPEGRepresentation(image, 1.0f);
                // imageData =UIImagePNGRepresentation(image);
                [formData appendPartWithFileData:imageData name:@"dir" fileName:fileName mimeType:@"image/jpeg"];
            }
        } progress:^(NSProgress * _Nonnull uploadProgress) {
            NSLog(@"%@",uploadProgress);
            
        } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
    /*上传成功后的处理
    1、上传无图的
    2、上传有图的
    **/
            NSLog(@"获取图片上传路径%@",responseObject);
            imgStr = responseObject[@"url"];
            if (!imgStr) {
                [PPNetworkHelper setRequestSerializer:PPRequestSerializerHTTP];
                [PPNetworkHelper POST:RELEASE parameters:params success:^(id responseObject) {
                    int code=[responseObject[@"code"] intValue];
                    NSLog(@"发布responseObject%@",responseObject);
                    if(code==1){
                        [MBManager showBriefAlert:@"发布成功"];
                        [self.navigationController popViewControllerAnimated:YES];
                    }
                } failure:^(NSError *error) {
                    
                }];
            }else{
                
                [params setValue:imgStr forKey:@"imgs"];
                NSDictionary *dic = [NSDictionary dictionaryWithObjects:@[imgStr] forKeys:@[@"imgs"]];
                [params addEntriesFromDictionary:dic];
                [PPNetworkHelper setRequestSerializer:PPRequestSerializerHTTP];
                [PPNetworkHelper POST:RELEASE parameters:params success:^(id responseObject) {
                    int code=[responseObject[@"code"] intValue];
                    NSLog(@"发布responseObject%@",responseObject);
                    if(code==1){
                        [MBManager showBriefAlert:@"发布成功"];
                        [self.navigationController popViewControllerAnimated:YES];
                    }
                } failure:^(NSError *error) {
                    
                }];
                
            }
        } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
            NSLog(@"%@",error);
        }];
        
        
    
    }
    
    
    二、PPNetworkHelper上传一张或多张图片
    NSMutableDictionary *params = [NSMutableDictionary dictionary];
        params[@"type"] = @"1";
        params[@"uid"] = [USER_DEFAULT valueForKey:@"uid"];
        params[@"cont"] = _noteTextView.text;
        NSLog(@"----%@",params);
        __block NSString *imgStr;
        NSMutableDictionary * parame=[NSMutableDictionary new];
        [PPNetworkHelper setRequestSerializer:PPRequestSerializerHTTP];
        /**
         *  上传单/多张图片
         *
         *  @param URL        请求地址
         *  @param parameters 请求参数
         *  @param name       图片对应服务器上的字段
         *  @param images     图片数组
         *  @param fileNames  图片文件名数组, 可以为nil, 数组内的文件名默认为当前日期时间"yyyyMMddHHmmss"
         *  @param imageScale 图片文件压缩比 范围 (0.f ~ 1.f)
         *  @param imageType  图片文件的类型,例:png、jpg(默认类型)....
         *  @param progress   上传进度信息
         *  @param success    请求成功的回调
         *  @param failure    请求失败的回调
         *
         *  @return 返回的对象可取消请求,调用cancel方法
         */
        
        /*
         [PPNetworkHelper uploadImagesWithURL:UPLOAD_IMG parameters:parame name:@"file" images:@[img] fileNames:@[@"file"] imageScale:0.5f imageType:@"image/1.jpeg" progress:^(NSProgress *progress) {
         
         */
        //创建图片文件名数组:self.fileNameArr
        for (int i=0; i<self.imageArray.count; i++) {
            NSString *fileName = [NSString stringWithFormat:@"image%d.png",i];
            [self.fileNameArr addObject:fileName];
        }
        //上传多张图片
        [PPNetworkHelper uploadImagesWithURL:UPLOAD_IMG  parameters:parame name:@"file" images:self.imageArray fileNames:self.fileNameArr imageScale:1.f imageType:@"image/1.jpeg" progress:^(NSProgress *progress) {
        } success:^(id responseObject) {
            imgStr = responseObject[@"url"];
            NSLog(@"创建群组上传徽章%@",responseObject);
            int error=[responseObject[@"error"] intValue];
            if(error==0){
                if (imgStr) {
                    [params setValue:imgStr forKey:@"imgs"];
                    NSDictionary *dic = [NSDictionary dictionaryWithObjects:@[imgStr] forKeys:@[@"imgs"]];
                    [params addEntriesFromDictionary:dic];
                    [PPNetworkHelper setRequestSerializer:PPRequestSerializerHTTP];
                    [PPNetworkHelper POST:RELEASE parameters:params success:^(id responseObject) {
                        int code=[responseObject[@"code"] intValue];
                        NSLog(@"发布responseObject%@",responseObject);
                        if(code==1){
                            [MBManager showBriefAlert:@"发布成功"];
                            [self.navigationController popViewControllerAnimated:YES];
                        }
                    } failure:^(NSError *error) {
                        
                    }];
                }else{
                    [PPNetworkHelper setRequestSerializer:PPRequestSerializerHTTP];
                    [PPNetworkHelper POST:RELEASE parameters:params success:^(id responseObject) {
                        int code=[responseObject[@"code"] intValue];
                        NSLog(@"发布responseObject%@",responseObject);
                        if(code==1){
                            [MBManager showBriefAlert:@"发布成功"];
                            [self.navigationController popViewControllerAnimated:YES];
                        }
                    } failure:^(NSError *error) {
                        NSLog(@"%@",error);
                    }];
                }
            }
        } failure:^(NSError *error) {
             NSLog(@"%@",error);
        }];
        
        
    }
    

    相关文章

      网友评论

          本文标题:iOS AFNetworking与PPNetworkHelper

          本文链接:https://www.haomeiwen.com/subject/zdntyftx.html