利用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還沒弄懂,剩下就是請求完成解析了。