I have 2 servers, 1 for running PHP apps and database, 1 for streaming and download medium static files.
I was using this line of PHP code to handle download.
PHP:
header('Location: ' . $external_media_url);
It's good in performance but lacking of convenience for my users, IE users must Save target as..., or browsers auto-handle this with their inline media player.
I've searched around the internet for a coupe of hours, but everyone is using these line of codes for their download feature.
PHP:
$filename = basename($url).PHP_EOL;
$filesize = getRemoteFileSize($url);
header('Content-Description: File Transfer');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Disposition: attachment; filename =' . $filename);
header('Content-Length: ' . $filesize);
readfile($url);
This works GREAT, but i see an impact to client's speed rate and long processing time to serve a download, because it must read entire filesize in the external server and re-buffer to serve client.