下载mp3而不是默认在浏览器中播放?

时间:2010-08-17 06:16:46

标签: browser download

我有一个网站,用户可以从Flash播放器流式传输音乐或下载单个歌曲(如mp3)。现在,如果您点击下载链接,他们只需在浏览器中播放。我可以这样做,以便默认情况下弹出下载框,而不会压缩创建用户rt的文件。点击?

我的index.php页面的链接看起来像这样(从mySQL中动态提取文件名:

<table>
.
.
.
<td>
    <?php include 'Media/' . $row['type'] . '/' . $row['folder_name'] . '/download.php' ?>
</td>

然后download.php有这个:

<div class="downloadCell">
    <h3>Downloads:</h3>
    <ul>
        <li>
          <a href="auto_download.php?path=Media/<?php echo $row['type'] . '/' . $row['folder_name'] ?>/Chemtengure.mp3">Chemtengure</a>
        </li>
    </ul>
</div>

我将auto_download.php放在与index.php相同的目录中:

auto_download.php:

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

1 个答案:

答案 0 :(得分:6)

您需要将此HTTP标头添加到您的响应中,以使浏览器强制下载:

Content-Disposition: attachment; filename=your_filename.mp3

例如,如果您在服务器端使用PHP,则可以创建一个脚本,该脚本发送上面的标题,后跟实际的文件内容:

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

如果您调用此脚本download.php,则链接到download.php?path=/path/to/your/file.mp3会使浏览器弹出file.mp3的下载对话框。