点击下载MP3文件

时间:2015-11-26 03:58:59

标签: javascript php jquery html html5

作为一名新的程序员,我一直在做大量的试验和错误,并坚持使用有效的发现,但我现在的方法并不适用于所有浏览器。

我们的PHP代码。

$songs = file_get_contents('https://example.com/tracks/'.$id.'/');
$filename = './tmp/'.$SongTitle.'.mp3'; // used for the file_put_contents.
$filenames = '/tmp/'.$SongTitle.'.mp3'; // used for the echo
file_put_contents($filename, $songs);

HTML下载按钮。

<div style="text-align: center; font-size: 20px;" class="testing-content">
<button type="button" class="btn btn-success"><a href="<?php echo $filenames; ?>" download='<?php echo $filenames; ?>' href="javascript:">Download</button></a>
</div>

您可以看到我正在使用上面的 Html5 Javascript 方法,这意味着它只支持FireFox和Google Chrome。

如何在所有浏览器上允许用户点击我们的按钮下载文件?

2 个答案:

答案 0 :(得分:3)

原因是FireFox和Google Chrome会自动为mime类型八位字节流播放音频或视频,但是IE不支持此功能。

您需要在服务器配置中添加 .mp3 扩展名和 mime类型,才能在IE中下载您的文件。

答案 1 :(得分:0)

好吧,正如所承诺的那样:

<?php

$file = "example.mp3";

header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename='.$file);
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
header("Content-Type: audio/mp3");
readfile($file);

?>

现在只需创建一个指向此php文件的超链接或按钮。

编辑:我应该补充一点,这只是一个例子!该方法目前的形式效率很低。如果您打算使用多个音频文件,则应通过POST / GET动态生成文件名。