Binary file copy

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Greetings list!

Say I want to copy a jpg from a remote server onto mine, using PHP. Right now, my script opens a socket to the remote server, and opens the image file. It copies its contents into a dummy variable, opens a new file on my server, and dumps the contents of the dummy variable into the new file.

For reasons I cannot figure out, it is not working the way I want. Rather than display the image, I get an nothing when opening it in an image viewer.

Code follows:
------
<?php

$ip = '10.10.10.3';
$port = '80';

$h = @fsockopen($ip, $port, $err, $str, 5);


if ($h)
{
	
	// Get current image
	$h = @fsockopen($ip, $port, $err, $str, 5);
	$out = "GET /record/current.jpg HTTP/1.1\r\n";
	$out .= "Host: $ip\r\n";
	$out .= "Connection: Close\r\n\r\n";
	
	fputs($h, $out, strlen($out));
	
	$data = '';
	
	while (!feof($h))
	{
		$data .= fgets($h, 128);
	}
	
	
	fclose($h);
	
	// Store to file
	$f = fopen('/path/test.jpg', "wb");
	
	if ($f)
	{
		fwrite($f, $data, strlen($data));
		fclose($f);
		
	}
	else
	{
		die('cannot open file for writing');
	}
}
else
{
	die('cannot contact server');
}
?>

---------

I have trimmed the code some, and omitted the part where I remove the HTTP headers and other information I do not need.

Why isn't this working for me?

Thanks in advance,
Jay

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux