码迷,mamicode.com
首页 > Web开发 > 详细

上传图片-AFN

时间:2016-05-14 12:35:31      阅读:483      评论:0      收藏:0      [点我收藏+]

标签:

上传图片分为两种 :一种是只上传图片,一种是即上传图片又上传文字。

一.只上传图片,代码如下

- (void)httpRequestUploadMeHeadImageWithFile:(UIImage *)file UUID:(NSString *)UUID error:(void (^)(NSError *))err{
    NSString *url = [NSString stringWithFormat:@"%@图片上传地址"];
    NSDictionary *parametes;
    if ( UUID.length) {//图片参数,登录后的UUID,根据你参数添加所需要的参数
        parametes = @{@"UUID":UUID};
    }else{
        return ;
    }
    if (!file) {
        return;
    }
    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    manager.responseSerializer = [AFHTTPResponseSerializer serializer];  //请求图片,请求网页时需要加入这句,因为AFN默认的请求的是json
//    application/json
      [manager.requestSerializer setValue:/**@"multipart/form-data"*/@"application/json" forHTTPHeaderField:@"Content-Type"]; //请求头
    [manager POST:url parameters:parametes constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
NSData
*data = UIImagePNGRepresentation(file); //下面的方式也可以 // NSData *data = UIImageJPEGRepresentation(pic, 1.0); NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; // 设置时间格式 formatter.dateFormat = @"yyyyMMddHHmmss"; NSString *str = [formatter stringFromDate:[NSDate date]]; NSString *fileName = [NSString stringWithFormat:@"%@.png", str]; // 特别注意,这里的图片的名字不要写错,必须是你接口的图片的参数名字如我这里是file [formData appendPartWithFileData:data name:@"file" fileName:fileName mimeType:@"image/png"]; } progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { NSLog(@"responseObject===>%@",responseObject); if (err) { err(nil); } } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { NSLog(@"task------>%@error------> %@",task,error); if (err) { err(error); } }]; }

 

二. 即上传图片又上传文字,只需将Content-Type改为@"multipart/form-data"和 parametes参数字典中加入你要拼接文字的参数名称即可。

   [manager.requestSerializer setValue:@"multipart/form-data" forHTTPHeaderField:@"Content-Type"];

三. 可能出现的错误

  1.如果返回错误码为-1001,需将Content-Type设置为@"application/json"可图片参数的名字,[formData appendPartWithFileData:data name:@”图片参数的名字“ fileName:fileName mimeType:@"image/png"]和NSData *data = UIImagePNGRepresentation(图片名字的地址)一致且是你接口参数的名字; 

上传图片-AFN

标签:

原文地址:http://www.cnblogs.com/TheYouth/p/5492178.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!