AFNet3.0上传图片

Posted 溺水的小小鱼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AFNet3.0上传图片相关的知识,希望对你有一定的参考价值。

很多ios应用都会遇到需要上传图片的情况,比如修改个人资料时需要上传自己的头像,最近我也遇到了这种情况,首先参考之前写过的AFNetWorking3.0处理请求头和请求内容

我们在上述博客的基础之上进行修改,假设我们正在修改个人资料,里面需要修改个人头像和其他资料,用请求头进行用户识别,请求内容包括其他的个人资料。

首先是请求的URL,

NSString *url = @"your url";

接下来定义AFHTTPSessionManager,

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

设置相关的请求头,通过requestSerializer来实现,可以根据自己的需求定义一个或者多个请求头,

[manager.requestSerializer @"value1" forHTTPHeaderField:@"key1"];
[manager.requestSerializer @"value2" forHTTPHeaderField:@"key2"];
......

实现带请求内容的POST方法,这里一些文本性质的个人资料可以直接在parameters中进行设置,但是图片需要另外处理,先将UIImage对象转化成NSData对象,

NSData *imgData = UIImagePNGRepresentation(UIImage对象);

最后将图片作为请求的内容进行上传,

[manager POST:url
       parameters:@{
                    @"key1":@"value1",
                    @"key2":@"value2"
                    ......
                    }
constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
    [formData appendPartWithFileData:imgData name:@"key3" fileName:@"avatar.png" mimeType:@"image/png"];
}
        progress:nil
         success:^(NSURLSessionTask *task, id responseObject) {
             NSLog("response:%@", responseObject);
             }
         }
         failure:^(NSURLSessionTask *task, NSError *error) {
             NSLog(@"error:%@", error);
         }];

通过以上过程就实现了利用AFNetWorking 3.0上传图片的过程,上传其他文件类型同理。

以上是关于AFNet3.0上传图片的主要内容,如果未能解决你的问题,请参考以下文章

如何上传图片到七牛云

使用 AFNetworking、ios 上传图片

Android - 应用程序启动时片段 onCreate 崩溃

手机safari图片上传竖变横处理

java Ftp上传创建多层文件的代码片段

根据图片的url地址下载图片到本地保存代码片段