使用AFNetWorking上传图片

AFHTTPSessionManager *manager   = [AFHTTPSessionManager manager];

    

    NSString *string                        = @"admin:100";

    

    NSData          *originData             = [string dataUsingEncoding:NSASCIIStringEncoding];

    NSString        *encodeResult           = [originData base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed];

    NSString        *end                    = [NSString stringWithFormat:@"Basic %@",encodeResult];

    

    

    manager.requestSerializer               = [AFHTTPRequestSerializer serializer];

    manager.responseSerializer              = [AFJSONResponseSerializer serializer];

    

    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json",

                                                         @"text/html",

                                                         @"image/jpeg",

                                                         @"image/png",

                                                         @"application/octet-stream",

                                                         @"text/json",

                                                         nil];

    

    [manager.requestSerializer setValue:end forHTTPHeaderField:@"Authorization"];

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

    

    NSString                *urlStr     = [NSString stringWithFormat:@"%@%@",kNetIp,Net_UploadImg];

    

    NSMutableDictionary     *parameters = [[NSMutableDictionary alloc]init];

    

    NSLog(@" 上传图片请求参数 url %@ %@ manager %@",urlStr,parameters,manager.requestSerializer.HTTPRequestHeaders);

    

    [manager POST:urlStr parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData)

    {

        // 上传文件

        NSData *imageData;

        if (UIImagePNGRepresentation(_pickedImg) == nil)

        {

            imageData = UIImageJPEGRepresentation(_pickedImg, 1);

        }

        else

        {

            imageData = UIImagePNGRepresentation(_pickedImg);

        }

        

        NSDateFormatter         *formatter  = [[NSDateFormatter alloc] init];

        formatter.dateFormat                = @"yyyyMMddHHmmss";

        NSString                *str        = [formatter stringFromDate:[NSDate date]];

        NSString                *fileName   = [NSString stringWithFormat:@"%@.jpg", str];

        

        //上传的参数(上传图片,以文件流的格式)

        [formData appendPartWithFileData:imageData

                                    name:@"file"

                                fileName:fileName

                                mimeType:@"image/jpeg"];

    }

         progress:^(NSProgress *_Nonnull uploadProgress)

     {

         //打印下上传进度

     }

          success:^(NSURLSessionDataTask *_Nonnull task, id _Nullable responseObject)

     {

         //上传成功

     }

          failure:^(NSURLSessionDataTask *_Nullable task, NSError * _Nonnull error)

     {

         //上传失败

         NSError         *code   = (NSError *)error;

         UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"图片上传出错" message:[NSString stringWithFormat:@"%@",code.localizedDescription] delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil];

         [alert show];

     }];

转载于:https://www.cnblogs.com/shifu/p/5938652.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值