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

Joe*_*oel 4 browser download

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

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

<table>
.
.
.
<td>
    <?php include 'Media/' . $row['type'] . '/' . $row['folder_name'] . '/download.php' ?>
</td>
Run Code Online (Sandbox Code Playgroud)

然后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>
Run Code Online (Sandbox Code Playgroud)

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

auto_download.php:

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

cas*_*nca 6

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

Content-Disposition: attachment; filename=your_filename.mp3
Run Code Online (Sandbox Code Playgroud)

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

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

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