title: Upload multiple files using http POST
body: <p>I am having a problem uploading files with FTP from my iPhone app.</p>
  
  <p>I am sending an <code>HTTP POST</code> request to my webservice with all the necessary parameters. I am sending two files, one is an image, and the second is audio. The image is being uploaded, but the audio isn't.
  When I trace my web service it only shows the image field as an uploaded file. It's not showing that the audio is also there.</p>
  
  <p>My code is:</p>
  
  <pre><code>NSString *urlString = [NSString stringWithFormat:ADD_LEAD_API_URL];
  
  NSMutableURLRequest *postRequest =  [NSMutableURLRequest requestWithURL:[NSURL URLWithString:urlString]];
  
  
  
  // change type to POST (default is GET)
  [postRequest setHTTPMethod:@"POST"];
  
  
  // just some random text that will never occur in the body
  NSString *stringBoundary = @"0xKhTmLbOuNdArY---This_Is_ThE_BoUnDaRyy---pqo";
  
  // header value
  NSString *headerBoundary = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",stringBoundary];
  
  // set header
  [postRequest addValue:headerBoundary forHTTPHeaderField:@"Content-Type"];
  
  // create data
  NSMutableData *postBody = [NSMutableData data];
  
  
  
  [postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
  [postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"userId\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
  [postBody appendData:[appDelegate.objCurrentUser.userId dataUsingEncoding:NSUTF8StringEncoding]];
  [postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];     
  
  
  // message part
  [postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
  [postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"firstName\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
  [postBody appendData:[firstName dataUsingEncoding:NSUTF8StringEncoding]];
  [postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
  
  /*** My rest of string parameters are successfully added to request ***/
  
  
  // media part
  [postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
  [postBody appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"imageUrl\"; filename=\"dummy.jpg\"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
  [postBody appendData:[@"Content-Type: image/jpeg\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
  [postBody appendData:[@"Content-Transfer-Encoding: binary\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
      // get the image data from main bundle directly into NSData object
  
  UIImage *img= leadImage;
  NSData *imageData= UIImageJPEGRepresentation(img,90);
  
  [postBody appendData:imageData];
  
  // Image is being uploaded
  
  [postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
  [postBody appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"recordSoundUrl\"; filename=\"%@\"\r\n", self.recordingPath] dataUsingEncoding:NSUTF8StringEncoding]];
  [postBody appendData:[@"Content-Type: application/octet-stream\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
  [postBody appendData:[@"Content-Transfer-Encoding: binary\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
  
  
  NSData *soundData = [NSData dataWithContentsOfFile:[appDelegate.documentDir stringByAppendingPathComponent:self.recordingPath]];
  [postBody appendData:soundData];
  [postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
  
  // final boundary
  [postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
  
  // add body to post
  [postRequest setHTTPBody:postBody];
  
  // Asynch request
  NSURLConnection *conn = [NSURLConnection connectionWithRequest:postRequest delegate:self];
  </code></pre>
  
  <p>If I don't upload the image, then it takes the audio. So I am able to send only one file with the request. 
  Please help me and tell me if I am wrong anywhere.</p>
  
  <p>Thanks in advance.</p>