php脚本从远程URL直接下载文件到用户电脑

Ric*_*ard 1 html php

我希望允许站点用户轻松下载我们在远程托管服务上拥有的文件(音频)。

我们有指向这些文件的 URL。这些文件与主站点不在同一站点或服务器上。

目前,我们有指向这些文件的链接,以及一些指示站点用户必须右键单击并选择“文件另存为”才能将这些文件下载到本地计算机的文本。

为了使这对用户更加友好,如果站点用户只需单击一个链接并拥有一个可以下载文件的脚本,那就更好了。

这可能吗?

对此进行研究后,有许多关于在同一服务器上下载文件或将 URL 下载到您的服务器的在线示例和 SO 问题。

这不是我们在这里想要做的。我们不想将这些文件中的任何一个从远程托管服务复制到主 Web 服务器。

这是供站点用户单击链接并让远程 URL 将文件直接下载到用户本地计算机而不是服务器。

Rya*_*yan 6

您可以使用以下 PHP 实现此目的:

$file_name = $_GET['filename'];
$file_url = 'http://path_to_audio_folder.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;
Run Code Online (Sandbox Code Playgroud)

然后你可以从你的脚本中调用它,比如:download.php?filename=my_song.mp3它会被强制下载给你的访问者点击它。