views:

20

answers:

1

I need my server to act as a proxy between a 3rd party server (where the file is originally located) and the end user. That is, my server downloads the file from the 3rd party server, and sequentially, the user downloads it from my server. This should result in an incurred bandwidth of twice the file size. How can this process be achieved using PHP?

+2  A: 

Very very simply like this:

$url = GET['file'];
$path_parts = pathinfo($url);

$ext = $path_parts['extension'];
$filename = $path_parts['filename'];

header('Content-type: application/$ext');
header('Content-Disposition: attachment; filename="$filename"');

echo file_get_contents($url);

If the file is larger than a few megabytes, use fopen fread and frwrite download the file in chunks and send to the client in chunks.

Byron Whitlock