美文网首页
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