1. //1.创建管理者对象
  2. AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
  3. manager.responseSerializer = [AFJSONResponseSerializer serializer];
  4. manager.requestSerializer = [AFJSONRequestSerializer serializer];
  5. //2.上传文件
  6. NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"userHeader.png", @"userHeader", nil nil];
  7. [manager POST:URL parameters:dict constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
  8. //上传文件参数
  9. [formData appendPartWithFileData:data name:@"userHeader" fileName:@"userHeader.png" mimeType:@"image/jpeg"];
  10. } progress:^(NSProgress * _Nonnull uploadProgress) {
  11. //打印上传进度
  12. CGFloat progress = 100.0 * uploadProgress.completedUnitCount / uploadProgress.totalUnitCount;
  13. DLog(@"%.2lf%%", progress);
  14. } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
  15. //请求成功
  16. DLog(@"请求成功:%@",responseObject);
  17. } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
  18. //请求失败
  19. DLog(@"请求失败:%@",error);
  20. }];

二、多张图片

  1. //1.创建管理者对象
  2. AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
  3. manager.responseSerializer = [AFJSONResponseSerializer serializer];
  4. manager.requestSerializer = [AFJSONRequestSerializer serializer];
  5. //2.上传文件
  6. NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"userHeader.png", @"userHeader", @"image.png", @"image", nil nil];
  7. [manager POST:URL parameters:dict constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
  8. //上传文件参数
  9. [formData appendPartWithFileData:data1 name:@"userHeader" fileName:@"userHeader.png" mimeType:@"image/jpeg"];
  10. [formData appendPartWithFileData:data2 name:@"image" fileName:@"image.png" mimeType:@"image/jpeg"];
  11. } progress:^(NSProgress * _Nonnull uploadProgress) {
  12. //打印上传进度
  13. CGFloat progress = 100.0 * uploadProgress.completedUnitCount / uploadProgress.totalUnitCount;
  14. DLog(@"%.2lf%%", progress);
  15. } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
  16. //请求成功
  17. DLog(@"请求成功:%@",responseObject);
  18. } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
  19. //请求失败
  20. DLog(@"请求失败:%@",error);
  21. }];

iOS开发之使用AFN上传图片的更多相关文章

  1. IOS开发之—— 在AFN基础上进行的网络请求的封装

    网络请求的思路:如果请求成功的话AFN的responseObject就是解析好的. 1发送网络请求:get/post/或者别的 带上URL,需要传的参数 2判断后台网络状态码有没有请求成功: 3 请求 ...

  2. ios开发网络学习AFN三:AFN的序列化

    #import "ViewController.h" #import "AFNetworking.h" @interface ViewController () ...

  3. ios开发网络学习AFN框架的使用一:get和post请求

    #import "ViewController.h" #import "AFNetworking.h" @interface ViewController () ...

  4. ios开发之--使用AFN上传3.1.0上传视频,不走成功回调原因及解决方法

    在测试接口的时候,发现接口称走走了,但是success的回调不走,检查了下代码,发现没有初始化下面两个方法: manage.responseSerializer = [AFHTTPResponseSe ...

  5. iOS开发——网络篇——NSURLSession,下载、上传代理方法,利用NSURLSession断点下载,AFN基本使用,网络检测,NSURLConnection补充

    一.NSURLConnection补充 前面提到的NSURLConnection有些知识点需要补充 NSURLConnectionDataDelegate的代理方法有一下几个 - (void)conn ...

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

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

  7. IOS开发 AFN和ASI

    做项目有一段时间了,项目过程中处理网络请求难免的,而对于选择第三方来处理网络请求肯定是个明智的选择! AFNetworking和ASIHTTPRequest   这两个第三方该如何选择       我 ...

  8. iOS开发——高级篇——线程同步、线程依赖、线程组

    前言 对于iOS开发中的网络请求模块,AFNet的使用应该是最熟悉不过了,但你是否把握了网络请求正确的完成时机?本篇文章涉及线程同步.线程依赖.线程组等专用名词的含义,若对上述名词认识模糊,可先进行查 ...

  9. iOS开发系列--App扩展开发

    概述 从iOS 8 开始Apple引入了扩展(Extension)用于增强系统应用服务和应用之间的交互.它的出现让自定义键盘.系统分享集成等这些依靠系统服务的开发变成了可能.WWDC 2016上众多更 ...

随机推荐

  1. 将Maven2项目转为MyEclipse项目

    现在项目中,大家开始用jetty.它不用像在MyEclipse中使用Tomcat那样要部署,也不用像在Tomcat中那样,要把应用都放到webapp文件夹下.jetty可以直接用你的项目的目录结构. ...

  2. Spark1.0.0 应用程序部署工具spark-submit

    原文链接:http://blog.csdn.net/book_mmicky/article/details/25714545 随着Spark的应用越来越广泛,对支持多资源管理器应用程序部署工具的需求也 ...

  3. Axure Beta 7.0 汉化版下载

    Axure的最新版本下载地址如下 安装文件地址: PC版下载地址:点我下载  Mac版下载地址:点我下载 下载后下载汉化包即可进行汉化(含中文部件库) 汉化文件:点我下载 -------------- ...

  4. OpenCV学习(15) 细化算法(3)

          本章我们学习一下Hilditch算法的基本原理,从网上找资料的时候,竟然发现两个有很大差别的算法描述,而且都叫Hilditch算法.不知道那一个才是正宗的,两个算法实现的效果接近,第一种算 ...

  5. OpenCV学习(7) 分水岭算法(1)

            分水岭算法主要用于图像分段,通常是把一副彩色图像灰度化,然后再求梯度图,最后在梯度图的基础上进行分水岭算法,求得分段图像的边缘线.         下面左边的灰度图,可以描述为右边的地 ...

  6. dedecms织梦 v5.6 两处跨站漏洞

    漏洞版本: dedecms织梦 v5.6 漏洞描述: DedeCMS内容管理系统软件采用XML名字空间风格核心模板:模板全部使用文件形式保存,对用户设计模板.网站升级转移均提供很大的便利,健壮的模板标 ...

  7. mac下的一些命令

    1.显示隐藏文件 defaults write com.apple.finder AppleShowAllFiles -bool true 2.隐藏隐藏文件 defaults write com.ap ...

  8. hdu2175之找规律

    汉诺塔IX Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

  9. 使用OctreeQuantizer提高gdi+绘图质量

    .net中gdi+绘制的图形质量很少,原因是gdi+使用的是256色的. 为了提高绘制图片的质量,可以使用是“Octree“ 算法.“Octree“ 算法允许我们插入自己的算法来量子化我们的图像. 一 ...

  10. php--session垃圾回收机制

    在PHP中,没有任何变量指向这个对象时,这个对象就成为垃圾.PHP会将其在内存中销毁:这是PHP的GC垃圾处理机制,防止内存溢出. GC的工作就是扫描所有的Session信息,用当前时间减去sessi ...