Как правильно скриптом отдать файл пользователю?

grey109

Новичок
Как правильно скриптом отдать файл пользователю?

Есть два сайта. На одном расположены все php-скрипты, на другом лежат wav/mp3-файлы. Нужно, чтобы скрипты с первого сайта отдавали пользователю файлы со второго, но при этом пользователь не должен догадываться об этом, т.е. для пользователя должно быть все прозрачно. Также крайне желательно, чтобы при щелчке по ссылке файл начинал воспроизведение.

Ссылки на файлы имеют вид: download.php?cd_id=3455&track=1

Сейчас скрипт download.php выглядит так:

if ($fd=@fopen("http://xxx.xxx.ru/".$cd_id."/".$track.".wav", "rb"))
{
fclose($fd);

header("Content-type: audio/mpeg");
header("Content-Disposition: inline; filename=".$track.".wav");

echo "http://xxx.xxx.ru/".$cd_id."/".$track.".wav";
exit;
}


При щелчке по вышенаписанной ссылке начинается воспроизведение файла Windows Media Player'ом - это хорошо. Но если попробовать скачать этот файл с помощью FlashGet'a/ReGet'a , то будет скачан файл, в котором будет содержаться одна текстовая строка: http://xxx.xxx.ru/3455/1.wav - это плохо.


Вопрос: как сделать так, чтобы и файлы воспроизводились при щелчке по ссылке, и чтобы в тоже время файлы можно было скачивать программами типа FlashGet/ReGet ?
 

Demiurg

Guest
передавай сам файл а не ссылку на него.
 

grey109

Новичок
Например, с помощью readfile? Если да, то так получается не очень красиво, т.к. сначала скачивается целиком файл, а уже потом начинается его воспроизведение.
 

Ямерт

The Old One
Если ты хочешь воспроизведение при клике на линке типа www.myhost.com/resource.mp3, то тут единственный универсальный выбор (имхо) - стриминг. Есть много аудио- и видео- стриминг-серверов, платных и бесплатных. Нужно только поискать.

Воспроизведение по щелчку файла, который лежит на сервере, работающим со старым добрым протоколом HTTP, у тебя получится не везде. Что делать с полученным ресурсом - уже дело клиента (браузера). Некоторые будут пытаться сохранить файл. Тут уж ничего не поделаешь.
 

grey109

Новичок
Если ты хочешь воспроизведение при клике на линке типа www.myhost.com/resource.mp3, то
Нет, все ссылки имеют вид www.myhost.com/download.php?cd_id=3455&track=1 . По щелчке по этой ссылке, начинает работать вышеприведенный скрипт.

Есть много аудио- и видео- стриминг-серверов, платных и бесплатных. Нужно только поискать.
Честно сказать совсем не хочется использовать сторонние сервисы...
 
Сверху