Php 需要帮助获取此自动下载标题以显示正确路径吗

Php 需要帮助获取此自动下载标题以显示正确路径吗,php,include,header,path,Php,Include,Header,Path,我有一个可以从播放器播放的MP3页面,还有下载歌曲的链接。当用户单击下载链接时,需要打开下载对话框,而不是打开媒体播放器,因此建议我使用以下标题脚本: 包括/auto-download.php: <?php $path = $_GET['path']; header('Content-Disposition: attachment; filename=' . basename($path)); readfile($path); ?> 然后在我的主页上,链接如下所示: <a

我有一个可以从播放器播放的MP3页面,还有下载歌曲的链接。当用户单击下载链接时,需要打开下载对话框,而不是打开媒体播放器,因此建议我使用以下标题脚本:

包括/auto-download.php:

<?php
$path = $_GET['path'];
header('Content-Disposition: attachment; filename=' . basename($path));
readfile($path);
?>

然后在我的主页上,链接如下所示:

<a href="includes/auto_download.php?path=Media/Audio/Date/song.mp3">Song Name</a>

我的路径似乎有问题,当我单击链接时,下载框打开,我可以下载一个具有正确名称的文件,但它不包含任何信息

为了详细说明我的文件结构,我有以下内容:

/用户(我的主index.php页面上有我的链接

/用户/包括(我的auto-download.php脚本所在位置)

/用户/媒体/音频/日期/(这是所有歌曲的位置)


非常感谢您的帮助!

请将HTML代码更改为:

 <a href="includes/auto_download.php?path=../Media/Audio/Date/song.mp3">Song Name</a>
 readfile('../'.$path);

$path需要是从web根目录到文件的相对路径。不带前导斜杠。如果文件位于web根目录之外,则应使用完整路径(
/home/webuser/song\u files/song.mp3

例如,
$path='song\u files/'。$\u GET['name\u of\u the\u file'];

您还应该检查文件是否不存在,并在退出时出错。 下面是我在codeigniter中制作的一个示例

function _begin_download($document_data) {
    basepath = 'uploads/';
    $filepath = basepath . $document_data->filename;
    if (file_exists($filepath)) {
        header("Content-type: " . $document_data->mimetype);
        header("Content-length: " . filesize($filepath));
        header('Content-Transfer-Encoding: binary');
        header('Expires: 0');
        header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
        header('Content-disposition: attachment; filename="' . $document_data->filename . '"');
        readfile($filepath);
        exit();
    } else {
        exit('File not found.');
    }
}

我回来是想删除这个,因为我也刚刚弄明白,但是你及时回答了!:-D谢谢你花时间!