作为一名新的程序员,我一直在做大量的试验和错误,并坚持使用有效的发现,但我现在的方法并不适用于所有浏览器。
我们的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。
如何在所有浏览器上允许用户点击我们的按钮下载文件?
答案 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动态生成文件名。