Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Output mp3 with php

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!

like image 343
Tim S. Avatar asked Mar 11 '11 15:03

Tim S.


1 Answers

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.

like image 181
Furicane Avatar answered Nov 17 '22 00:11

Furicane