使用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];
}];
使用AFNetWorking上传图片的更多相关文章
- iOS开发通过AFNetworking上传图片到服务器
iOS开发通过AFNetworking上传图片到服务器 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; manager. ...
- AFNetworking 3.0 源码解读(三)之 AFURLRequestSerialization
这篇就讲到了跟请求相关的类了 关于AFNetworking 3.0 源码解读 的文章篇幅都会很长,因为不仅仅要把代码进行详细的的解释,还会大概讲解和代码相关的知识点. 上半篇: URI编码的知识 关于 ...
- iOS-AFNetworking-上传图片
一.AFNetworking上传图片 /** 需要Demo,可留言 */ 1.利用AFnetworking上传图片. 2.注意将UIImage类型转化为NSData类型,传给后台. 二.Demo // ...
- FTP文传协议的应用
我开发的项目中一直用到都是AFNetworking上传图片的方法,最近老大说要用FTP上传,网上的资料很少,毕竟这种上传方式现在用的不多了,于是花了一天时间学习了FTP文件传输协议.下面是我的个人理解 ...
- AFNetWorking POST Multi-Part Request 上传图片
这些天来,做图片上传的时候,我遇到一个问题.对我来说,这只是一个附加的图片将请求超时,这里是代码: AFHTTPRequestOperationManager *manager = [AFHTTPRe ...
- AFNetworking实现表单(multipart)形式上传图片
最近遇到个问题,就是上传图片到服务器,后台说用表单形式... 由于没弄过这种上传,所以搜了大堆资料,但也没解决问题. 最后通过请教一位大神才得以解决这个简单的问题... 现在将此方法做个笔记... & ...
- iOS 原生HTTP POST请求上传图片
今天项目里做一个上传图片等个人信息的时候,使用了第三方AFNetworking - (AFHTTPRequestOperation *)POST:(NSString *)URLString param ...
- 库AFNetworking的使用
库AFNetworking的使用 1.GET请求(html,json,xml) #pragma mark -GET请求 -(void)testGetRequset{ NSString *urlStri ...
- AFNetworking的封装
AFNetworking的封装 特点 1.将AFNetworking 3.0封装.能够很好享受苹果开发中的面向对象开发思想 . 2.其中也提供几种方法,来请求数据.包括:GET请求/POST请求/Up ...
随机推荐
- UP Board 网络设置一本通
前言 原创文章,转载引用务必注明链接,水平有限,欢迎指正. 本文环境:ubilinux 3.0 on UP Board 本文使用Markdown写成,为获得更好的阅读体验和正常的图片.链接,请访问我的 ...
- 检测到有潜在危险的 Request.Form 值
这种问题是因为你提交的Form中有HTML字符串,例如你在TextBox中输入了html标签,或者在页面中使用了HtmlEditor组件等,解决办法是禁用validateRequest. 如果你是.n ...
- iOS 10、Xcode 8 遇到部分问题解决记录
今天把iphone 6 升级到ios10 后,用Xcode 7进行真机调试的时候提示: Could not find Developer Disk Image 果断准备升级到Xcode 8 .但是想保 ...
- ajax传输中文乱码解决方法
问题描述: 我是在一个jsp页面有一个保存按钮,点击时会触发saveForm()的js函数,在saveForm()函数里经过校验后,会通过ajax发送数据请求,这样就不用通过提交表单来传输数据了,aj ...
- 5天揭秘js高级技术-第二天
一.数组 1. 什么是数组? 数组就是一组数据的集合: 其表现形式就是内存中的一段连续的内存地址: 数组名称其实就是连续内存地址的首地址: 2. 关于js中的数组定义 数组定义无需指定数据类型: 数组 ...
- Android Studio使用Git版本控制工具
1.File->Settings->Version Control->git 将git.exe地址copy进去 2.File->Settings->Version Con ...
- MySQL练习-employees数据库(一)
安装一个数据库示例--employees 使用工具为Navicat--(ctrl + q: 打开新查询窗口 ctrl + r: 运行当前窗口内的所有语句) 参考http://www.cnblogs.c ...
- PL/SQL存储过程编程
PL/SQL存储过程编程 /**author huangchaobiao *Email:huangchaobiao111@163.com */ PL/SQL存储过程编程(上) 1. Oracle应用编 ...
- NSTimer
NSTimer叫做“定时器”,它的作用如下 在指定的时间执行指定的任务 每隔一段时间执行指定的任务 调用下面的方法就会开启一个定时任务 + (NSTimer *)scheduledTimerWithT ...
- EBS中利用Socket与外系统通信
某银行要求做一个签到签退功能,日终EBS系统发送报文与核心系统对帐,规定利用Socket来做传送,记录下步骤: 1.编辑: $INST_TOP/ora/10.1.3/j2ee/oacore/appli ...