我从远程服务器(Centos 5.8)下载WAV文件。使用以下PHP脚本:
header('Content-Description: File Transfer');
header('Content-Type: audio/x-wav');
header('Content-Disposition: attachment; filename=' . basename($realLink));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($realLink));
ob_clean();
flush();
readfile($realLink);
当我尝试使用Windows Media Player或Itunes播放下载的文件时,它将无法播放。即使我本地计算机上下载的WAV文件大小与服务器上文件的版本相同,下载文件的属性也显示为00:00长度,不会播放。此外,如果我使用ftp手动下载它,文件下载和播放就好了。只有当我使用上面的脚本下载时,才会发生明显的损坏。我很感激任何帮助。
答案 0 :(得分:3)
以下是WAV的有效MIME类型:
audio/vnd.wave
audio/wav
audio/wave
audio/x-wav
答案 1 :(得分:0)
此代码可用于下载wav音频。
$ctype ='audio/x-wav'; // file type
$filepath = '/var/www/html/audio.wav';//absolute url
$size = filesize($fichero); // size of file
$name = basename($fichero); // name of file
$fp=fopen($fichero, "rb");
if ($size && $ctype && $fp) {
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Description: wav file");
header("Content-Type: " . $ctype);
header("Content-Disposition: attachment; filename=" . $name);
header("Content-Transfer-Encoding: binary");
header("Content-length: " . $size);
ob_clean();
fpassthru($fp);
}