使用 PHP 强制下载 MP3

Force Download MP3 with PHP

老实说:我找到了从 s******d 下载 mp3 文件的方法,但我无法直接下载 MP3,所有音乐都在浏览器中流式传输。

我已经尝试过这样的事情了

<a href="direct_download.php?file=fineline.mp3">Download the mp3</a>

但是我下载的 link 不是 .mp3,这是我下载文件的代码行

href="<?php echo $val['stream_url']?>?client_id=67739332564a7130c3a05f90f2d02d2e">Descargar</a>.

当我使用选项时

direct_download.php?file=

只需下载一个名为

的文件
client_id=05b4f2000dad27aa9fc48d08915d7830.html

我使用的完整php代码是

<?php
$file = $_GET['file'];
header ("Content-type: octet/stream");
header ("Content-disposition: attachment; filename=".$file.";");
header("Content-Length: ".filesize($file));
readfile($file);
exit;
?>

可以像这样在任何锚点中访问:

<a href="direct_download.php?file=fineline.mp3">Download the mp3</a>

能不能帮帮我,或者有更好的ide,谢谢大家

如果您正在使用 html5,您可以使用下载选项

<a href="url_to_your_file.mp3" download>Download the mp3</a>

否则,您可以使用javascript

function saveAs(url) {    
  var filename = url.substring(url.lastIndexOf("/") + 1).split("?")[0];
  var xhr = new XMLHttpRequest();
  xhr.responseType = 'blob';
  xhr.onload = function() {
    var a = document.createElement('a');
    a.href = window.URL.createObjectURL(xhr.response);
    a.download = filename; 
    a.style.display = 'none';
    document.body.appendChild(a);
    a.click();
    delete a;
  };
  xhr.open('GET', url);
  xhr.send();
}

从您的 link

调用它
<a href="javascript:" onclick="saveAs(url_to_your_file.mp3)">Download the mp3</a>