afn访问本地html,iOS-利用AFNetworking(AFN 1.x)-实现文件上传

官方建议AFN的使用方法

1. 定义一个全局的AFHttpClient:包含有

1> baseURL

2> 请求

3> 操作队列 NSOperationQueue

2. 由AFHTTPRequestOperation负责所有的网络操作请求

0.导入框架准备工作

•1. 将框架程序拖拽进项目

•2.  添加iOS框架引用

–SystemConfiguration.framework

–MobileCoreServices.framework

•3.  引入

#import “AFNetworking.h”

4. 修改xxx-Prefix.pch文件

#import

#import

1.AFN的客户端,使用基本地址初始化,同时会实例化一个操作队列,以便于后续的多线程处理

1 @interfaceViewController ()

2

3 {

4

5 // AFN的客户端,使用基本地址初始化,同时会实例化一个操作队列,以便于后续的多线程处理

6

7 AFHTTPClient *_httpClient;

17 NSOperationQueue *_queue;

18

19 }

1 - (void)viewDidLoad

2 {

3 [super viewDidLoad];

4

5 NSURL *url = [NSURL URLWithString:@"http://192.168.3.255/~apple/qingche"];

6 _httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];

7

8 _queue = [[NSOperationQueue alloc] init];

9 }

2.利用AFN实现文件上传操作细节

1 #pragma mark - 文件上传

2 - (IBAction)uploadImage

3 {

4 /*

5 此段代码如果需要修改,可以调整的位置

6

7 1. 把upload.php改成网站开发人员告知的地址

8 2. 把file改成网站开发人员告知的字段名

9 */

10 // 1. httpClient->url

11

12 // 2. 上传请求POST

13 NSURLRequest *request = [_httpClient multipartFormRequestWithMethod:@"POST" path:@"upload.php" parameters:nil constructingBodyWithBlock:^(id formData) {

14 // 在此位置生成一个要上传的数据体

15 // form对应的是html文件中的表单

16

17

18 UIImage *image = [UIImage imageNamed:@"头像1"];

19 NSData *data = UIImagePNGRepresentation(image);

20

21 // 在网络开发中,上传文件时,是文件不允许被覆盖,文件重名

22 // 要解决此问题,

23 // 可以在上传时使用当前的系统事件作为文件名

24 NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

25 // 设置时间格式

26 formatter.dateFormat = @"yyyyMMddHHmmss";

27 NSString *str = [formatter stringFromDate:[NSDate date]];

28 NSString *fileName = [NSString stringWithFormat:@"%@.png", str];

29

30

31 /*

32 此方法参数

33 1. 要上传的[二进制数据]

34 2. 对应网站上[upload.php中]处理文件的[字段"file"]

35 3. 要保存在服务器上的[文件名]

36 4. 上传文件的[mimeType]

37 */

38 [formData appendPartWithFileData:data name:@"file" fileName:fileName mimeType:@"image/png"];

39 }];

40

41 // 3. operation包装的urlconnetion

42 AFHTTPRequestOperation *op = [[AFHTTPRequestOperation alloc] initWithRequest:request];

43

44 [op setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {

45 NSLog(@"上传完成");

46 } failure:^(AFHTTPRequestOperation *operation, NSError *error) {

47 NSLog(@"上传失败->%@", error);

48 }];

49

50 //执行

51 [_httpClient.operationQueue addOperation:op];

AFNetworking之多图片-文件上传

在分享经验之前,先说点题外话,之前的一个项目涉及到了多图片的上传,本来以为是一个很简单的事情,却着实困扰了我好久,究其原因,一是我不够细心,二是与后台人员的交流不够充分.在此,我想将我的老师常说的一句 ...

.NetCore WebApi利用Swagger文档实现选择文件上传

介绍 实现这个功能主要还是依赖过滤器 在Swagger中利用 IOperationFilter 操作来实现文件上传 与之前处理结合Idr4授权一样的处理方式,不同的是授权处理的是Security,而文 ...

spring mvc利用MultipartResolver解析Multipart/form-data进行文件上传

之前的表单数据都是文本数据,现记录:利用MultipartResolver进行文件上传. ①首先,需引入commons-fileUpload和commons-io jar包,pom.xml文件的坐标: ...

利用百度编辑器和IIS限制文件上传的大小

1.百度编辑器的大小限制 针对不同的文件类型限制大小 例如图片是imageMaxSize ,依次类推 /* 前后端通信相关的配置,注释只允许使用多行方式 */ {     /* 上传图片配置项 */ ...

iOS多线程与网络开发之小文件上传

郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. /** 取得本地文件的MIMEType */ 2 - (void) getMIMEType { 3 // Socket 实现断点上传 4 5 //apa ...

[PHP 作为iOS后台Json格式HTTP通信及文件上传的实现]

1.数据库连接 configmysql.php <?php $q = mysql_connect("localhost:8889","root",&quo ...

Java 利用Apache Commons Net 实现 FTP文件上传下载

package woxingwosu; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import ...

利用Django REST framework快速实现文件上传下载功能

安装包 pip install Pillow 设置 首先在settings.py中定义MEDIA_ROOT与MEDIA_URL.例如: MEDIA_ROOT = os.path.join(BASE_D ...

利用Selenium实现图片文件上传的两种方式介绍

在实现UI自动化测试过程中,有一类需求是实现图片上传,这种需求根据开发的实现方式,UI的实现方式也会不同. 一.直接利用Selenium实现 这种方式是最简单的一种实现方式,但是依赖于开发的实现. 当 ...

随机推荐

Ruby--strftime

-- [17 Oct 2016 05:37:18AM]:%e %b %Y %H:%M:%S%p -- [Oct 17, 2016]:%b %d, %Y -- [10-17-16 05:37]:%m-% ...

Git实现从本地添加项目到远程仓库

Git是现在最流行的版本控制系统之一了,今天也试试了,成功了上传了远程仓库,接下来看看我是怎么做的. (ps:七牛抓取不到图片,请移步:http://blog.csdn.net/u011043843/ ...

深度学习研究理解5:Visualizing and Understanding Convolutional Networks(转)

Visualizing and understandingConvolutional Networks 本文是Matthew D.Zeiler 和Rob Fergus于(纽约大学)13年撰写的论文,主 ...

2&period; hdfs

一.Hdfs的shell 所有hadoop的fs的shell均用uri路径作为参数 uri格式:schema://authority/path.hdfs的schema是hdfs.其中,schema和a ...

利用BBRSACryptor实现iOS端的RSA加解密

背景 RSA这种非对称加密被广泛的运用于网络数据的传输,但其在iOS上很难直接实现,BBRSACryptor框架通过移植openssl实现了iOS端的RSA,本文将介绍如何使用BBRSACryptor ...

&lbrack;Docker&rsqb; Docker Client in Action

Pull the docker image: docker pull hello-world Show all the images: docker images Remove the image: ...

web应用中Spring ApplicationContext的动态更新

在web应用中时常需要修改配置,并动态的重新加载ApplicationContext.比如,设置和切换数据库.以下给出一个方法,并通过代码验证可行性. 方法的基本思路是,为WebApplication ...

redis对比memcached

摘要 : 简单地比较Redis与Memcached的区别,大多数都会得到以下观点: 1  Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储. 2  Re ...

初识Avro

Avro是Hadoop生态圈的一部分,由Hadoop的创始人Doug Cutting牵头开发,当前最新版本1.8.2.Avro是一个数据序列化系统,设计用于支持大批量数据交换的应用.它的主要特点有: ...

MT【311】三角递推数列

已知数列$\{a_n\}$满足$a_1=\dfrac{1}{2},a_{n+1}=\sin\left(\dfrac{\pi}{2}a_n\right),S_n$ 为$\{a_n\}$的前$n$项和,求 ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值