美文网首页
AFN单张图片上传

AFN单张图片上传

作者: Markcf | 来源:发表于2017-04-13 15:15 被阅读0次
- (void)upLoadSigleImage:(UIImage*) image completion:(void (^)(BOOL isSuccess))completion{
    if (!image){
        return;
    };
    //    //1.创建管理者对象
    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    [manager.requestSerializer setValue:@"multipart/form-data" forHTTPHeaderField:@"Content-Type"];
    
    NSString *urlString = @"上传的网址";
    NSData *imageData = UIImageJPEGRepresentation(image, 0.7);
    
    //post请求
    [manager POST:urlString parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        formatter.dateFormat   = @"yyyyMMddHHmmss";
        NSString *str = [formatter stringFromDate:[NSDate date]];
        NSString *fileName = [NSString stringWithFormat:@"%@.png", str];
        /*
         此方法参数
         1. 要上传的[二进制数据]
         2. 我这里的imgFile是对应后台给你url里面的图片参数,别瞎带。
         3. 要保存在服务器上的[文件名]
         4. 上传文件的[mimeType]
         */
        [formData appendPartWithFileData:imageData name:@"mfile" fileName:fileName mimeType:@"image/jpeg"];
    } progress:^(NSProgress * _Nonnull uploadProgress) {
        float progress =  1.0 * uploadProgress.completedUnitCount/uploadProgress.totalUnitCount;
        NSLog(@"上传进度%f",progress);
    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        NSString *errmsg = [responseObject objectForKey:@"errmsg"];
        NSString *mediaID = [responseObject objectForKey:@"mediaid"];
        if (mediaID && [errmsg isEqualToString:@"ok"]) {
            NSLog(@"上传成功");
            completion(YES);
        }else{
        completion(NO);
        }
    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        NSLog(@"请求失败:%@",error);
        completion(NO);
    }];
}

相关文章

网友评论

      本文标题:AFN单张图片上传

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