Я сослался на эти вопросы и реализовал их ответы, но ни один из них не работает для меня.
скачать mp3 вместо воспроизведения в браузере по умолчанию?
тип контента для mp3 скачать ответ
скачать mp3 с веб-адреса с Android не удалось
Обычно, когда пользователь щелкает ссылку для загрузки на веб-сайте, мы хотим, чтобы пользователю было предложено загрузить аудиофайл.
Код:
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Type: $mtype");
header("Content-Disposition: attachment; filename=".$file_name);
readfile($fname);
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . $fsize);
Вот, $mtype
является "audio/mpeg"
Успех:
Отказ:
<untitled>
и показывает статус "download unsuccessful"
, Спасибо, если у вас есть идея, почему этот код не работает на телефоне Android.
Возникла та же проблема, и возможно, ваш сервер не позволяет вам правильно использовать mp3-файлы (я использую Biz.nf)
Я только что нашел решение этой проблемы. На моем андроиде Xiaomi работает отлично.
if (file_exists($file)) {
echo "OK";
if (ob_get_level()) {
ob_end_clean();
} // clearing output script buffer
$mime_type = "audio/mpeg, audio/x-mpeg, audio/x-mpeg-3, audio/mpeg3";
header('Content-Description: File Transfer');
header('Content-Type: {$mime_type}');
header('Content-Disposition: attachment; filename=' . basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
readfile($file);