I'm working on my school project and I'm trying to output a mp3 file using PHP but apparently it just outputs some corrupt file and I have no clue why. I browsed the entire net to find a solution, but no.
<?php
$filename = 'audio/1/1.mp3';
if(file_exists($filename)) {
header('Content-Type: audio/mpeg');
header('Content-Disposition: filename="test.mp3"');
header('Content-length: '.filesize($filename));
header('Cache-Control: no-cache');
header("Content-Transfer-Encoding: chunked");
readfile($filename);
} else {
header("HTTP/1.0 404 Not Found");
}
?>
Can anyone explain this to me? That would be totally awesome!
header('Content-Disposition: inline;filename="test.mp3"');
That's what you're missing in your header() (you had no "inline" specified). Content-Transfer-Encoding should be "binary", not "chunked".
Edit: use "inline" if you want it to be displayed within the browser (if capabilities exist) or "attachment" if you want to force download.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With