• 使用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];

         }];

  • 相关阅读:
    Amoeba -- 阿里巴巴工程师的开源项目之一陈思儒
    js表达式与语句的区别
    互联网公司github项目汇总
    CDN解决方案
    免费评论组件多说
    ajax同步的实现
    两种时间格式化对比
    Google Gson 使用简介
    使用XStream解析MXL文件用到的jar包---xpp3_min-1.1.3.4.O.jar和xstream-1.3.1.jar
    《Netty in Action》中文版
  • 原文地址:https://www.cnblogs.com/shifu/p/5938652.html
Copyright © 2020-2023  润新知