下载mp3,而不是默认在浏览器中播放?
问题描述:
我有一个网站,用户可以从Flash播放器播放我的音乐或下载单个歌曲(如mp3)。现在,如果你点击下载链接,他们只是在浏览器中播放。我可以做到这一点,所以默认情况下会弹出下载框,而不会压缩制作用户rt的文件。点击?下载mp3,而不是默认在浏览器中播放?
我有我有看起来像这样的链接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>
,我把与index.php同一目录下的auto_download.php:
auto_download.php:
$path = $_GET['path'];
header('Content-Disposition: attachment; filename=' . basename($path));
readfile($path);
答
您需要将这个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
下载对话框。
你能详细说一下吗?恐怕我不太明白如何编码。这个GET只是在头部部分 - 或者它是一个包含?或 - 我仍然是一个noob。 :D – Joel 2010-08-17 06:28:19
您在这里看到的代码是您需要的一切。只要把它放在一个php文件中,并点下载到这个文件,就像'get this song' – naugtur 2010-08-17 06:35:34
我没有得到它的工作 - 我想因为我增加了一些复杂性(从mySQL动态拉动下载文件名,我已更新我的问题分享那些细节 – Joel 2010-08-17 06:41:26