Я пытаюсь скачать аудио OGF файл с динамическим URL
function getAudio($fileName){
$localFile = __DIR__ . '/../../../shared/call_review/' . $fileName;
$fp = fopen($localFile, 'r');
$fp or die('Could not open file "' . $fileName . '"' . PHP_EOL);
$contents = fread($fp, filesize($localFile));
$contents or die('could not read file');
header('Content-Description: File Transfer');
header('Cache-Control: public');
header('Content-Type: audio/ogg');
header("Content-Transfer-Encoding: binary");
header('Content-Length: '.filesize($contents));
header("Content-Type: audio/ogg");
header("Content-Disposition: attachment; filename=" . $fileName);
echo $contents;
exit();
}
Но после сохранения файла он не работает или поврежден.
Проблема, кажется, заключается в следующем:
header('Content-Length: '.filesize($contents));
Размер файла должен исходить из filesize($localFile)
как продемонстрировали несколько строк ранее,
так и должно быть:
header('Content-Length: '.filesize($localFile));
Или просто используйте длину $contents
переменная:
header('Content-Length: '.strlen($contents));
Других решений пока нет …