title: Upload Image on tumblr in iPhone
body: <p>I am really stuck with this issue for many days. In my app i need to upload image on tumblr, i have tried various tutorials and updates however none of them is working for posting images on tumblr.Please help me any one if you have done this.</p>
  
  <pre><code>NSData *imageData = [NSData dataWithContentsOfFile:photo];
  //stop on error
  if (!imageData) return NO;
  
  //Create dictionary of post arguments
  NSArray *keys = [NSArray arrayWithObjects:@"email",@"password",@"type",@"caption",nil];
  NSArray *objects = [NSArray arrayWithObjects:
                      tumblrEmail,
                      tumblrPassword,
                      @"photo", caption, nil];
  NSDictionary *keysDict = [[NSDictionary alloc] initWithObjects:objects forKeys:keys];
  
  //create tumblr photo post
  NSURLRequest *tumblrPost = [self createTumblrRequest:keysDict withData:imageData];
  [keysDict release];
  
  //send request, return YES if successful
  NSURLConnection *tumblrConnection = [[NSURLConnection alloc] initWithRequest:tumblrPost delegate:self];
  if (!tumblrConnection) 
  {
      NSLog(@"Failed to submit request");
      return NO;
  } 
  else 
  {
      NSLog(@"Request submitted");
      receivedData = [[NSMutableData data] retain];
      [tumblrConnection release];
      return YES;
  }
  
  -(NSURLRequest *)createTumblrRequest:(NSDictionary *)postKeys withData:(NSData *)data
  {
   //create the URL POST Request to tumblr
   NSURL *tumblrURL = [NSURL URLWithString:@"http://api.tumblr.com/v2/blog/kashifjilani.tumblr.com/posts"];
   NSMutableURLRequest *tumblrPost = [NSMutableURLRequest requestWithURL:tumblrURL];
   [tumblrPost setHTTPMethod:@"POST"];
  
  //Add the header info
  NSString *stringBoundary = @"0xKhTmLbOuNdArY---This_Is_ThE_BoUnDaRyy---pqo";
  NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",stringBoundary];
  [tumblrPost addValue:contentType forHTTPHeaderField: @"Content-Type"];
  
  //create the body
  NSMutableData *postBody = [NSMutableData data];
  [postBody appendData:[[NSString stringWithFormat:@"--%@\r\n",stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
  
  //add key values from the NSDictionary object
  NSEnumerator *keys = [postKeys keyEnumerator];
  int i;
  for (i = 0; i &lt; [postKeys count]; i++) {
      NSString *tempKey = [keys nextObject];
      [postBody appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n",tempKey] dataUsingEncoding:NSUTF8StringEncoding]];
      [postBody appendData:[[NSString stringWithFormat:@"%@",[postKeys objectForKey:tempKey]] dataUsingEncoding:NSUTF8StringEncoding]];
      [postBody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
  }
  
  //add data field and file data
  [postBody appendData:[@"Content-Disposition: form-data; name=\"data\"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
  [postBody appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
  [postBody appendData:[NSData dataWithData:data]];
  [postBody appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
  
  //add the body to the post
  [tumblrPost setHTTPBody:postBody];
  
  return tumblrPost;
  }
  </code></pre>