title: IOS Upload pdf file from document directory to server using post and PHP
body: <p>I am working upload the pdf from the document directory. I have refer<a href="https://stackoverflow.com/questions/5443166/how-to-convert-uiview-to-pdf-within-ios"> this link</a> to convert the UIview to PDF and<a href="https://stackoverflow.com/questions/936855/file-upload-to-http-server-in-iphone-programming"> this link</a> to upload the pdf to the server but the result is the pdf file zero byte.  </p>
  
  <p>Here is my code.
  Xcode side:</p>
  
  <pre><code>-(NSMutableData *)createPDFDatafromUIView:(UIView*)aView
  {
      NSMutableData *pdfData = [NSMutableData data];
  
      // Points the pdf converter to the mutable data object and to the UIView to be converted
      UIGraphicsBeginPDFContextToData(pdfData, aView.bounds, nil);
      UIGraphicsBeginPDFPage();
      CGContextRef pdfContext = UIGraphicsGetCurrentContext();
  
  
      // draws rect to the view and thus this is captured by UIGraphicsBeginPDFContextToData
  
      [aView.layer renderInContext:pdfContext];
  
      // remove PDF rendering context
      UIGraphicsEndPDFContext();
  
      return pdfData;
  }
  
  -(NSString*)createPDFfromUIView:(UIView*)aView saveToDocumentsWithFileName:(NSString*)aFilename
  {
      NSMutableData *pdfData = [self createPDFDatafromUIView:aView];
  
      UIGraphicsBeginPDFContextToData(pdfData, aView.bounds, nil);
      UIGraphicsBeginPDFPage();
      CGContextRef pdfContext = UIGraphicsGetCurrentContext();
  
      // draws rect to the view and thus this is captured by UIGraphicsBeginPDFContextToData
      [aView.layer renderInContext:pdfContext];
      // remove PDF rendering context
      UIGraphicsEndPDFContext();
      // Retrieves the document directories from the iOS device
      NSArray* documentDirectories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);
  
      NSString* documentDirectory = [documentDirectories objectAtIndex:0];
      NSString* documentDirectoryFilename = [documentDirectory stringByAppendingPathComponent:aFilename];
  
      // instructs the mutable data object to write its context to a file on disk
      [pdfData writeToFile:documentDirectoryFilename atomically:YES];
      NSLog(@"documentDirectoryFileName: %@",documentDirectoryFilename);
      NSLog(@"The pdf is saved in %@", documentDirectoryFilename);
      return documentDirectoryFilename;
  }
  
  -(IBAction)snapchot:(id)sender
  {
      NSDate*todayDate = [NSDate date];
      NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
      [dateFormatter setDateFormat:@"ddMMyyyy"];
      NSString *mytext = [NSString stringWithFormat:@"%@.pdf",[dateFormatter stringFromDate:todayDate]];
  
  
      [self createPDFfromUIView:_myView saveToDocumentsWithFileName:mytext];
      NSData *datadat = [[NSData alloc] initWithContentsOfFile:mytext];
      NSString *urlString = @"http://localhost/pfy/uploadtestformpdf.php";
      NSString *filename = @"filename2";
      NSMutableURLRequest *request= [[NSMutableURLRequest alloc] init];
      [request setURL:[NSURL URLWithString:urlString]];
      [request setHTTPMethod:@"POST"];
      NSString *boundary = @"---------------------------14737809831466499882746641449";
      NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
      [request addValue:contentType forHTTPHeaderField: @"Content-Type"];
      NSMutableData *postbody = [NSMutableData data];
      [postbody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
      [postbody appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"userfile\"; filename=\"%@.pdf\"\r\n", filename] dataUsingEncoding:NSUTF8StringEncoding]];
      [postbody appendData:[[NSString stringWithString:@"Content-Type: application/pdf\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
      [postbody appendData:[NSData dataWithData:datadat]];
      [postbody appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
      [request setHTTPBody:postbody];
  
      NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
      NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
      NSLog(@"%@", returnString);
  }
  </code></pre>
  
  <p>PHP side:</p>
  
  <pre><code>&lt;?php 
  $uploaddir = './uploaded/';
  $file = basename($_FILES['userfile']['name']); $uploadfile = $uploaddir . $file; 
  if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { echo "Received file: $file";}
  ?&gt;
  </code></pre>
  
  <p>Could you help me?</p>