php - 如何强制下载文件?

2022-01-02 00:00:00 download php remote-server

我希望在我的一个网站上的每个视频下方添加下载此文件"功能.我需要强制用户下载文件,而不仅仅是链接到它,因为有时会开始在浏览器中播放文件.问题是,视频文件存储在单独的服务器上.

I'm looking to add a "Download this File" function below every video on one of my sites. I need to force the user to download the file, instead of just linking to it, since that begins playing a file in the browser sometimes. The problem is, the video files are stored on a separate server.

有什么办法可以强制在 PHP 中下载吗?

Any way I can force the download in 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;

我刚刚测试了它,它对我有用.

I just tested it and it works for me.

请注意,要使 readfile 能够读取远程 url,您需要拥有 fopen_wrappers 已启用.

Please note that for readfile to be able to read a remote url, you need to have your fopen_wrappers enabled.

相关文章