I found the following code worked for me for POSTing some binary data to a remote server. I am putting it here since I could not find a quick solution to this by 'googling' or looking through this documentation.
Disclaimer: I have no idea if this a 'good' solution, since I'm new to PHP, but it may just suit your needs as it did mine. I am assuming bad things will happen with very large files since the entire file is read into $fileContents.
I am using PHP 5.2.8.
$fileHandle = fopen("someImage.jpg", "rb");
$fileContents = stream_get_contents($fileHandle);
fclose($fileHandle);
$params = array(
'http' => array
(
'method' => 'POST',
'header'=>"Content-Type: multipart/form-data\r\n",
'content' => $fileContents
)
);
$url = "http://somesite.somecompany.com?someParam=someValue";
$ctx = stream_context_create($params);
$fp = fopen($url, 'rb', false, $ctx);
$response = stream_get_contents($fp);