Force Загрузить MP3 с помощью PHP

Будьте честны: я нашел способ загрузить mp3-файлы с s ****** d, но Im не смог загрузить MP3 напрямую, вся музыка транслируется в браузере.

Я уже пытаюсь сделать это так

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

но моя ссылка donwload не является .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> 

Не могли бы вы помочь мне, или если у вас есть лучший идеал, спасибо вам, ребята

если вы используете 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(); } 

Позвоните по ссылке

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