title: Sending raw binary and data with cURL
body: <p>I'm trying to send in POST a raw binary file together with some other data using cURL. 
  Basically, I did that: </p>
  
  <pre><code>//Here i create the CURLFile
  $cfile = new CURLFile($fullpath,'application/xml', $filename); 
  
  //Data to upload (including the file)
  $data_upload = array('username' =&gt; $username, 
                       'password' =&gt; $password, 
                       'owner' =&gt; $owner, 
                       'destination' =&gt; $pathpda, 
                       'filename' =&gt; $filename, 
                       'filedata' =&gt; $cfile);
  //Upload
  $ch_upload = curl_init($urlws.$e_upload);
  curl_setopt($ch_upload, CURLOPT_POST,true);
  curl_setopt($ch_upload, CURLOPT_POSTFIELDS, $data_upload);
  curl_setopt($ch_upload, CURLOPT_RETURNTRANSFER, true);
  $response_upload = curl_exec($ch_upload);
  curl_close($ch_upload); 
  </code></pre>
  
  <p>Everything worked fine. Except that now I want my file to be just binary data and not a real file on disk. Also, I need to send the other data in the request!
  Does anyone knows how to do that? I looked up in Google but I wasn't able to find a way to do both, sending the raw binary file and the other data.
  Thanks!  </p>
  
  <p>UPDATE
  To further clarify my question, I don't need to just send random binary data, rather a file whose content comes from ob_get_contents() (for example) so it's not a a physical file on disk. If i just replace the CURLfile to send the binary file data with the "filedata" variable, it simply doesn't work. The web service doesn't recognize the file. Maybe there's a way to create a CURLfile without pointing to a real file.</p>