PHP:wavファイルのダウンロード
音楽ファイルを会員に配信するサイトを運営しています。
mp3は問題なくダウンロード・再生できるのですが、wavファイルはダウンロードしてもファイルが破壊されており、再生できません。
wavファイルのバイト数に変化はありませんでした。FTPからファイルをダウンロードすると正常に再生できるので、問題はウェブでのダウンロードをする過程にあることは分かっています。いろいろ調べているのですがそれ以降の原因が分からず困っています。
誰か原因をご存知の方、目星の付く方などおられましたら、ぜひ解答お願いいたします。
ファイルダウンロードには、以下のようなphp関数を使っています。
function download_file($path_file){
if (!file_exists($path_file)) {
die("Error: No Such File.");
}
if (($content_length = filesize($path_file)) == 0) {
die("Error: File size is 0.(".$path_file.")");
}
if($_POST['sort'] == mp3){
header("Content-Type: audio/mpeg");
}elseif($_POST['sort'] == wav){
header("Content-Type: audio/x-wav");
}
header("Content-Disposition: attachment; filename=\"" .basename($path_file)."\"");
header("Content-Length: ".$content_length);
header("Content-Transfer-Encoding: binary");
$handle = fopen($path_file, 'rb');
while (!feof($handle)) {
echo fread($handle, 4096);
ob_flush();
flush();
}
fclose($handle);
}