首页 > 代码库 > AFNetworking之上传图片音乐等文件

AFNetworking之上传图片音乐等文件

AFNetworking可以很方便的上传图片等文件到服务器:

方法如下:

1.导包 ,

<span style="font-size:14px;">#import "AFNetworking.h" 
或者 
#import <AFNetworking.h>(如果用cocoapod安装的话)</span>

2.创建一个 manager属性:

@property (strong, nonatomic) AFHTTPRequestOperationManager *manager;

3.在viewDidLoad中一定要给manage分配内存,否则 下面的方法不会运行

self.manager=[[AFHTTPRequestOperationManager alloc]init];
4.把图片或者其他文件转为二进制:
mimeType类型有很多,大家可以百度一下!

<span style="font-size:14px;">5.开始请求,<span style="font-family: Arial, Helvetica, sans-serif;">@"http://xuyingtest.sinaapp.com/uploadfile.php"  //这是测试地址,可以直接使用</span></span><pre name="code" class="cpp"><span style="font-size:14px;">
</span>

<span style="font-size:14px;">        AFHTTPRequestOperation * op = [self.manager POST:@"http://xuyingtest.sinaapp.com/uploadfile.php" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData)
                                       {
                                           [formData appendPartWithFileData:upload_imagedata name:@"file" fileName:@"userImage.png" mimeType:@"image/png"];
                                           
                                           
                                           
                                       }
                                                 success:^(AFHTTPRequestOperation *operation, NSData * responseObject)//上传成功
                                       {
                                           NSLog(@"上传图片成功!");
                                           NSError * error;
                                           NSDictionary * dic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingAllowFragments error:&error];//json解析得到存储服务器返回的字典
                                           
                                                                                      
                                           NSString * imageURL = dic[@"success"];//解析得到了云存储器的URL
                                           
                                                                                     
                                       } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
                                       
                                       //连接服务器失败
                                       }];
        
        op.responseSerializer = [AFHTTPResponseSerializer serializer];//AF不解析,使用系统的json解析,效率很高
        [op start];//开始异步请求</span>


AFNetworking之上传图片音乐等文件