Php 需要帮助获取此自动下载标题以显示正确路径吗
我有一个可以从播放器播放的MP3页面,还有下载歌曲的链接。当用户单击下载链接时,需要打开下载对话框,而不是打开媒体播放器,因此建议我使用以下标题脚本: 包括/auto-download.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
<?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谢谢你花时间!