Могу ли я подавать файлы MP3 с PHP? - PullRequest
10 голосов
/ 04 октября 2009

Точно так же, как можно обрабатывать изображения с помощью 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, а затем «Нет видео».

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

Ответы [ 2 ]

14 голосов
/ 04 октября 2009

Ваш Контент-Диспозиция должна быть:

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"); 
1 голос
/ 06 декабря 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...