AFNetworking Cargar image desde iOS a API

Tengo problemas para cargar una image con datos. Este código me permite cargar datos muy bien:

NSURL *url = [NSURL URLWithString:@"my_base_url"]; AFHTTPClient *client = [[AFHTTPClient alloc]initWithBaseURL:url]; //depending on what kind of response you expect.. change it if you expect XML [client registerHTTPOperationClass:[AFJSONRequestOperation class]]; NSDictionary *params = [[NSDictionary alloc]initWithObjectsAndKeys: _topicText.text,@"Topic", @"1",@"Category", @"",@"MainMedia", @"1",@"Creator", nil]; [client postPath:@"apidebate/debates" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) { // } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"failure"); }]; 

Sin embargo, no he tenido éxito al tratar de cargar una image con esa información:

  NSURL *url = [NSURL URLWithString:@"my_base_url"]; AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url]; NSData *imageData = UIImageJPEGRepresentation([UIImage imageNamed:@"MainMedia"], 0.5); NSMutableURLRequest *request = [httpClient multipartFormRequestWithMethod:@"POST" path:@"/upload" parameters:nil constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) { [formData appendPartWithFileData:imageData name:@"MainMedia" fileName:@"MainMedia" mimeType:@"image/jpeg"]; }]; AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request]; [operation setUploadProgressBlock:^(NSInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) { NSLog(@"Sent %lld of %lld bytes", totalBytesWritten, totalBytesExpectedToWrite); }]; [operation start]; 

¿Qué en el trabajo podría estar haciendo mal?

Editar (agregar el código del server)

El back-end es Codeigniter con el cliente REST Phil Sturgeon construido (gran biblioteca, por cierto). Estoy casi seguro de que no es el código del server, ya que la primera línea de este método me envía un correo electrónico. Cuando bash utilizar el código anterior para publicar una image, el correo electrónico nunca llega. Por lo tanto, parece que ni siquiera está llegando al punto final.

 //CONTROLLER FROM API function debates_post() { mail('myemailaddress@gmail.com', 'Test', 'Posted'); $tmp_dir = "images/posted/"; if(isset($_FILES['MainMedia'])){ $SaniFileName = preg_replace('/[^a-zA-Z0-9-_\.]/','', basename($_FILES['MainMedia']['name'])); $file = $tmp_dir . $SaniFileName; move_uploaded_file($_FILES['MainMedia']['tmp_name'], $file); } else $SaniFileName = NULL; $data = array('Topic'=>$this->post('Topic'), 'MainMedia'=>$this->post('MainMedia'), 'Category'=>$this->post('Category'), 'Creator'=>$this->post('Creator')); $insert = $this->debate->post_debate($this->post('Topic'), $SaniFileName, $this->post('Category'), $this->post('Creator')); if($insert){ $message = $this->db->insert_id(); } else{ $message = 'Insert failed'; } $this->response($message, 200); } //MODEL function post_debate($Topic=NULL, $MainMedia='', $Category=NULL, $Creator=NULL){ $MainMedia = ($MainMedia)?$MainMedia:''; $data = array( 'Topic' => $Topic, 'MainMedia' => $MainMedia, 'Category' => $Category, 'Creator' => $Creator, 'Created' => date('Ymd h:i:s') ); return $this->db->insert('debate_table', $data); } 

ok, por lo que aparentemente usando fileName:@"MainMedia" para el nombre del file me dejó con un file subido sin extensión que estaba causando un error en el lado del server. Agregar ".jpg" a "MainMedia.jpg" solucionó esto.