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];

}];

最新文章

  1. 转:学习笔记:delphi多线程学识
  2. asp.net获取服务端和客户端信息
  3. jQuery延迟加载插件(Lazy Load)详解
  4. dcraw源码解析
  5. Oozie命令行常用命令汇总[转]
  6. Android 手势水平监听判断
  7. WPF ListView 选中问题
  8. Esxi 5.0下配置LSI SAS RAID卡
  9. 什么是系统平均负载(Load average)
  10. php入门微理解
  11. 获取一个Jpanel的父容器有多难
  12. VBS基础篇 - 杂项 - Sendkeys
  13. 1-SDK开发初探-8266
  14. Javascript 方法apply和call的差别
  15. linux 添加静态路由
  16. spring cloud 入门系列二:使用Eureka 进行服务治理
  17. DHT
  18. Android Studio 出现 Gradle&#39;s dependency cache may be corrupt 错误分析
  19. C# delegate (1)
  20. ReadTimeoutError: HTTPSConnectionPool(host=&#39;pypi.python.org&#39;, port=443): Read timed out.

热门文章

  1. BZOJ1492: [NOI2007]货币兑换Cash
  2. Python Day18
  3. 【原创】PageAdminCMS 前台SQL注入漏洞(2)
  4. vim删除以#,空格开头的行
  5. CSS的选择器
  6. SIP学习笔记(转)
  7. javascript 获取滚动条高度+常用js页面宽度与高度
  8. 《深入理解Java虚拟机》学习笔记1-内存数据区域
  9. Android五岁了
  10. Timequest收集命令