Forum Webscript.Ru

Программирование => PHP => Тема начата: Enemy от 19 Сентября 2003, 16:56:17

Название: mp3
Отправлено: Enemy от 19 Сентября 2003, 16:56:17
Подскажите какой должен быть скрипт чтобы при клике на ссылку - выскакивало окно "Сохранить как..."? и сохранялся файл с сервера...?


// сохраняю данные в базу

//отправляю юзера к файлу
header("Content-Type: application/force-download; name=\\"mp3/file.mp3\\"");
header("Content-Transfer-Encoding: binary");
header("Content-Disposition: attachment; filename=\\"mp3/file.mp3\\"");
header("Expires: 0");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
readfile(\'mp3/file.mp3\');
 

Почему-то заголовки не работают... сохраняется хтмл страница...

И еще один вопрос... - Можно ли узнать MPEG INFO в mp3 файла? Я в мануале такой функции не нашел... Если можно - подскажите пожалуйста.
Название: mp3
Отправлено: Макс от 19 Сентября 2003, 17:10:15
Enemy
насчет инфы об mp3-файлах - http://pear.php.net/MP3_ID
Название: mp3
Отправлено: AliMamed от 19 Сентября 2003, 17:36:00
header("Content-Type: application/force-download; name=\\"file.mp3\\"");
header("Content-Transfer-Encoding: binary");
header("Content-Disposition: attachment; filename=\\"file.mp3\\"");
header("Expires: 0");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
readfile(\'mp3/file.mp3\');

а так?
Название: mp3
Отправлено: DiJay от 06 Октября 2003, 06:57:05
Народ, а как так сделать, чтобы при клике на ссылку послушать можно было послушать файл в винампе он-лайн ?
Я слышал, что надо что-то с .m3u мутить ...
подскажите пожалуйста ...
Название: mp3
Отправлено: Меняздесьдавнонет от 06 Октября 2003, 10:12:19
Ничего мутить не надо. Это тебе не диск с файлом.
Надо просто отправить правильный заголовок.
Название: mp3
Отправлено: DiJay от 06 Октября 2003, 10:15:57
напиши пожалуйста заголовок
ведь если браузеру направлять мп3-файл, то он начнет его скачивать! а потом уже после скачки сразу открется винамп и начнуться песенки :)

По-моему только через m3u можно заставить винамп играть песенки с сервера ...
Название: mp3
Отправлено: Меняздесьдавнонет от 06 Октября 2003, 10:18:39
Откуда ж я его знаю?
Возьми какую-нибудь программку, которая показывает HTTP заколовки и тыкни в ссылку, которая позволяет прослушивать.
получишь все в лучшем виде!
Название: mp3
Отправлено: DiJay от 06 Октября 2003, 10:35:57
вот спроси помощи у человека :(
Название: mp3
Отправлено: Меняздесьдавнонет от 06 Октября 2003, 10:43:35
Но я правда его не знаю!
я никогда в жизни не делал ссылок на мп3 файлы!
чтобы сказать тебе этот заголовок, я должен проделать все то же самое, что написал тебе.
Но ведь это надо не мне! А тебе! С какой стати я должен это делать за тебя?
Я понимаю - ты не знал бы, как это сделать. Но я же тебе объяснил.
Название: mp3
Отправлено: DiJay от 06 Октября 2003, 10:57:12
А если я код напишу поможешь???
Ниже представлен код в файле m3u.php
К нему ведет ссылка типа m3u.php?id=1
//подключаю файл с классом для чтения ID3Tag
require_once(\'mp3_id3.php\');
//задан ли id
if($id=="") { $id=1; }
//привязываю файл
if($id=="1") { $down_file="1.mp3"; }
//создается объект для чтения ID3
$id3 = new id3($down_file);
//задается слуйчаный файл плейлиста
$r_m3u=rand();
$play_list=$r_m3u.".m3u";
//запихиваем в плейлист  все что нужно
$template="#EXTM3U
#EXTINF:".$id3->lengths.",".$id3->artists." - ".$id3->name."
http://site.ru/".$down_file;
//сохраняем в файл
$fp=fopen($play_list,"w");
  fwrite($fp,$template);
fclose($fp);

//теперь пробуем выдать что-нибудь браузеру
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
header("Content-Disposition: attachment; filename=" . basename($play_list));
header("Content-Length: " . filesize($play_list));
header("Accept-Ranges: bytes");
header("Content-Type: " . filetype($play_list));
readfile("$play_list");

exit;
?>

в коде все пути и имена верные на 100%!
В итоге браузер предлагает скачать плейлист, а надо чтобы он сразу его скачал и начал приогрывать в винампе!!!
Помогите плиз ...
Название: mp3
Отправлено: DiJay от 06 Октября 2003, 12:24:10
все я все сделал :)
смотрите код кому нужно:
require_once(\'mp3_id3.php\');
if($id=="") { $id=1; }

if($id=="1") { $down_file="1.mp3"; }

$id3 = new id3($down_file);

$r_m3u=rand();

$play_list=$r_m3u.".m3u";

$template="#EXTM3U
#EXTINF:".$id3->lengths.",".$id3->artists." - ".$id3->name."
http://site.ru/".$down_file;

$fp=fopen($play_list,"w");
  fwrite($fp,$template);
fclose($fp);

  header("Location: http://site.ru/".$play_list);

?>

код для чтения и записи ID3Tag смотрите здесь:
http://leknor.com/code/php/view/class.id3.php.txt