PHP在转换时下载文件

时间:2019-05-20 20:48:10

标签: php mp3

从m4a转换为mp3时,我需要一种下载mp3文件的方法。

我尝试了这段代码,但是它起作用了,但是,当我播放歌曲时,歌曲的持续时间错误,如果歌曲的长度为3分钟,那么当下载该歌曲时,此函数的播放时间为3:40左右

set_time_limit(0);
$local_file = 'song.mp3';
$download_file = 'song.mp3';
if(file_exists($local_file) && is_file($local_file)) {
header('Content-Description: file transfer');
header('Content-Disposition: attachment; filename='.$download_file);
header("Content-Transfer-Encoding: binary"); 
header("Content-Type: audio/mpeg, audio/x-mpeg, audio/x-mpeg-3, audio/mpeg3"); 
$perSecond = 500000; 
$file = fopen($local_file, 'r');
while(!feof($file)) {
    echo fread($file, $perSecond);
    flush();
    sleep(11);
}

}

有没有办法做到这一点?谢谢!

1 个答案:

答案 0 :(得分:1)

也许使用sendfile来流式传输文件?将fopen用于非文本文件时,请使用b标志:fopen($path, 'rb')指定二进制模式。