利用AFNetworking上傳圖片

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章