我有一个网站,用户可以从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);
答案 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
的下载对话框。