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

}];

使用AFNetWorking上传图片的更多相关文章

  1. iOS开发通过AFNetworking上传图片到服务器

    iOS开发通过AFNetworking上传图片到服务器 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; manager. ...

  2. AFNetworking 3.0 源码解读(三)之 AFURLRequestSerialization

    这篇就讲到了跟请求相关的类了 关于AFNetworking 3.0 源码解读 的文章篇幅都会很长,因为不仅仅要把代码进行详细的的解释,还会大概讲解和代码相关的知识点. 上半篇: URI编码的知识 关于 ...

  3. iOS-AFNetworking-上传图片

    一.AFNetworking上传图片 /** 需要Demo,可留言 */ 1.利用AFnetworking上传图片. 2.注意将UIImage类型转化为NSData类型,传给后台. 二.Demo // ...

  4. FTP文传协议的应用

    我开发的项目中一直用到都是AFNetworking上传图片的方法,最近老大说要用FTP上传,网上的资料很少,毕竟这种上传方式现在用的不多了,于是花了一天时间学习了FTP文件传输协议.下面是我的个人理解 ...

  5. AFNetWorking POST Multi-Part Request 上传图片

    这些天来,做图片上传的时候,我遇到一个问题.对我来说,这只是一个附加的图片将请求超时,这里是代码: AFHTTPRequestOperationManager *manager = [AFHTTPRe ...

  6. AFNetworking实现表单(multipart)形式上传图片

    最近遇到个问题,就是上传图片到服务器,后台说用表单形式... 由于没弄过这种上传,所以搜了大堆资料,但也没解决问题. 最后通过请教一位大神才得以解决这个简单的问题... 现在将此方法做个笔记... & ...

  7. iOS 原生HTTP POST请求上传图片

    今天项目里做一个上传图片等个人信息的时候,使用了第三方AFNetworking - (AFHTTPRequestOperation *)POST:(NSString *)URLString param ...

  8. 库AFNetworking的使用

    库AFNetworking的使用 1.GET请求(html,json,xml) #pragma mark -GET请求 -(void)testGetRequset{ NSString *urlStri ...

  9. AFNetworking的封装

    AFNetworking的封装 特点 1.将AFNetworking 3.0封装.能够很好享受苹果开发中的面向对象开发思想 . 2.其中也提供几种方法,来请求数据.包括:GET请求/POST请求/Up ...

随机推荐

  1. oracle--第一天PLSQL--bai

    第一天: -- 创建book表 create table book ( bid number primary key, bname varchar2(20) not null, price numbe ...

  2. JAVA源码分析-HashMap源码分析(二)

    本文继续分析HashMap的源码.本文的重点是resize()方法和HashMap中其他的一些方法,希望各位提出宝贵的意见. 话不多说,咱们上源码. final Node<K,V>[] r ...

  3. Oracle创建自增ID

    先创建序列sequence create sequence S_User minvalue 1 nomaxvalue  -- 或 maxvalue 999 start with 1 increment ...

  4. 常用HTTP状态码和CURL 000问题

      最近在测试CDN服务质量问题,测试过程中返回了一些不同的状态码,当然有一些常用的,也有一些不常用的.最奇葩的是在使用curl命令的时候出现000状态码,问了很多同事,对这个000的反应跟新事物是的 ...

  5. WCF学习第二篇:WCF 配置架构。这有助于对wcf配置的理解和记忆

    使用 Windows Communication Foundation (WCF) 配置元素,您可以配置 WCF 服务和客户端应用程序. 可以使用配置编辑器工具 (SvcConfigEditor.ex ...

  6. Greenplum-概念篇

    Greenplum主要组件包括:Master.Segments.Interconnect:其他组件包括ETL Server.Greenplum command center等.0. 组件之-Maste ...

  7. [转]MySQL索引背后的数据结构及算法原理

    摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BT ...

  8. iOS动态部署之RSA加密传输Patch补丁

    概要:这一篇博客主要说明下iOS客户端动态部署方案中,patch(补丁)是如何比较安全的加载到客户端中. 在整个过程中,需要使用RSA来加密(你可以选择其它的非对称加密算法),MD5来做校验(同样,你 ...

  9. java基础知识(六)日期处理

    一.日期处理类 在 JDK 1.1 之前,类 Date 有两个其他的函数.它允许把日期解释为年.月.日.小时.分钟和秒值.它也允许格式化和解析日期字符串.不过,这些函数的 API 不易于实现国际化.从 ...

  10. 常用ubuntu命令

    解压缩.7z sudo apt-get install p7zip-full 7z x PACKAGE.7z 查看图片 eog A.png 关闭打开触摸板(触点) sudo rmmod psmouse ...