Могу ли я обслуживать файлы MP3 с помощью PHP?

Точно так же, как можно обслуживать изображения с php, для использования в CAPTACHAS и т.д., можно ли сделать то же самое со звуковыми файлами?

Я пробовал это

<?php

$track = "sometrack.mp3";

if(file_exists($track)) {
    header('Content-type: audio/mpeg');
    header('Content-length: ' . filesize($track));
    header('Content-Disposition: filename="sometrack.mp3"');
    header('X-Pad: avoid browser bug');
    header('Cache-Control: no-cache');
    print file_get_contents($track);
} else {
    echo "no file";
}

Я использую Safari, который может воспроизводить файлы MP3. Он запускает Safari в правильном режиме, я получаю элементы управления Quicktime в течение нескольких секунд, а затем "Нет видео".

Я пытаюсь защитить файлы от несанкционированной загрузки, если вам интересно, почему я хочу это сделать.

Ответ 1

В вашем Content-Disposition должно быть:

header('Content-Disposition: attachment; filename="sometrack.mp3"');

Не уверен, что эта проблема. Я бы также рекомендовал использовать readfile для вывода файла:

readfile($rSong);

Кроме того, не удастся использовать исчерпывающий заголовок Content-Type и установить Content-Transfer-Encoding:

header("Content-Transfer-Encoding: binary"); 
header("Content-Type: audio/mpeg, audio/x-mpeg, audio/x-mpeg-3, audio/mpeg3"); 

Ответ 2

попробуйте использовать Этот класс, который поддерживает загрузку резюме и ограничение скорости, верят мне, что это нужно как владелец веб-сайта загрузки mp3.