我想在我的一个网站上的每个视频下面添加一个"下载此文件"功能.我需要强制用户下载文件,而不是仅仅链接到文件,因为有时候开始在浏览器中播放文件.问题是,视频文件存储在单独的服务器上.
我可以用PHP强制下载任何方式吗?
你可以尝试这样的事情:
$file_name = 'file.avi'; $file_url = 'http://www.myremoteserver.com/' . $file_name; header('Content-Type: application/octet-stream'); header("Content-Transfer-Encoding: Binary"); header("Content-disposition: attachment; filename=\"".$file_name."\""); readfile($file_url); exit;
我只是测试了它,它适用于我.
请注意,为了readfile
能够读取远程URL,您需要fopen_wrappers
启用它.
经过测试的download.php文件是
function _Download($f_location, $f_name){ $file = uniqid() . '.pdf'; file_put_contents($file,file_get_contents($f_location)); header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Length: ' . filesize($file)); header('Content-Disposition: attachment; filename=' . basename($f_name)); readfile($file); } _Download($_GET['file'], "file.pdf");
和下载的链接是
Descargar