利用AFNetworking可以很容易的上传图片,下面备上代码以备不时之需,比如上传url为:http://…/accountmanagement/UploadFile
参数为:{“id”:”…..”,”file”:”…”}
- (void)uploadImageWithName:(NSString *)name image:(UIImage *)image {
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
[manager POST:@"http://.../accountmanagement/UploadFile" parameters:@{@"id":@"......",@"file":@"jjjjj.jpg"} constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
[formData appendPartWithFileData:UIImageJPEGRepresentation(image, 0.7) name:@"file" fileName:name mimeType:@"image/jpeg"];
//0.7为缩放比例
} success:^(AFHTTPRequestOperation *operation, NSData *responseObject) {
NSDictionary *data = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];
NSLog(@"%@",data);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
}];
}
这里的上传原理,就是根据接口文档拼出来url和para,再在formData的block中生成了一个AFHTTPBodyPart的对象,这里设置编码方式,header(Content-Disposition,Content-Type),data数据,然后加到AFMultipartBodyStream中,然后执行post请求,这里具体的AFMultipartBodyStream还没弄懂,剩下就是请求完成解析了。