我有一个网站,用户可以从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)
您需要将此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.