Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Файл в некоторых браузерах скачивается без раширения 0_о
 
 автор: Dr Lines   (04.10.2008 в 08:13)   письмо автору
 
 

Вобщем у меня есть mp3 архив, и когда пользователь выбирает нужную песню из этого архива, чтобы скачать, то скачка не идет напрямую с диска на сервере. (так специально задумано)

Для скачки, был сделан спец. скрипт ("downloader.php"), через который и идет скачка.
Скрипт получает ID файла через параметр пересылаемый по $_GET, ищет название файла в базе, и если находит, выводит header для скачки. (в архиве только mp3 файлы)
Выглядит он (header) так:

Header("Content-type: audio/mp3");
Header("Content-Disposition: attachment; filename=".$dwnname);
...здесь следует вывод самого файла, посредством echo :) ....

$dwnname - это имя файла, полученного из базы по ID. (например: Evanescence - Bring to me live.mp3)

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

Если что, то вот этот mp3 "архив": http://lineradio.ru/lineradio/?list=3

  Ответить  
 
 автор: Trianon   (04.10.2008 в 09:55)   письмо автору
 
   для: Dr Lines   (04.10.2008 в 08:13)
 

Имя-то нужно в кавычки брать как минимум.

  Ответить  
 
 автор: Dr Lines   (04.10.2008 в 11:57)   письмо автору
 
   для: Trianon   (04.10.2008 в 09:55)
 

Про какие кавычки вы говорите.?

Вы предлагаете написать так?
filename='".$dwnname."'");

  Ответить  
 
 автор: cheops   (04.10.2008 в 12:22)   письмо автору
 
   для: Dr Lines   (04.10.2008 в 11:57)
 

Да, так как в имени файла у вас используются пробелы.

  Ответить  
 
 автор: Dr Lines   (04.10.2008 в 12:40)   письмо автору
 
   для: cheops   (04.10.2008 в 12:22)
 

Выход один - заменить пробелы чем-то.

Если имя файла так закавычить, то при скачивании он сохраняется с этими кавычками.
вот так : 'artist - track.mp3'

  Ответить  
 
 автор: cheops   (04.10.2008 в 13:10)   письмо автору
 
   для: Dr Lines   (04.10.2008 в 12:40)
 

Попробуйте пробел заменить на последовательность %20 - браузер теоретически должен автоматически преобразовать её в пробел.

  Ответить  
 
 автор: sim5   (04.10.2008 в 10:34)   письмо автору
 
   для: Dr Lines   (04.10.2008 в 08:13)
 

А mp3, это случайно не audio/mpeg ?

  Ответить  
 
 автор: Dr Lines   (04.10.2008 в 11:51)   письмо автору
 
   для: sim5   (04.10.2008 в 10:34)
 

Да, спасибо за заметку, mpeg - правильнее, но и mp3 тоже, как видимо, работает. Только что mpeg, что mp3, роли в данной проблеме не играет.
Вобщем, проблема была решена заменой пробельных символов на знак подчеркивания в имени скачиваемого файла.

  Ответить  
 
 автор: Dr Lines   (04.10.2008 в 12:44)   письмо автору
 
   для: Dr Lines   (04.10.2008 в 11:51)
 

Хотя я нашел разницу между mpeg и mp3

При использовании mpeg файл открывается прямо в браузере на вопроизведение, используя при этом втроенный медиа проигрыватель. (например quick time)

A при использовании mp3 файл открывается как раз на скачивание, то есть выводится диалоговое окно для сохранения на диск, или открытия .

  Ответить  
 
 автор: Le bien   (04.10.2008 в 12:56)   письмо автору
 
   для: Dr Lines   (04.10.2008 в 12:44)
 

Думаю нельзя так утверждать, т.к. браузеры бывают разные, встроеные проигрователи тем более =)
Опера у меня, например, постоянно по разному относится к WMV, -то открывает в окне, то запускает MPC - черт ее разберет =))

По теме - я использовал в таком случае mod_rewrite, например перенаправлял запроы
download/name_of_track.mp3
на
download.php?name=name_of_track.mp3
скрипт делал что нужно без лишних заголовков, а браузер однозначно получал имя файла.
Почему? Все по тому же - не все браузеры почему то воспринимают подобные заголовки.
Например, наровят сохранить с расширением .php, или же с вместо имя - что то вроде download.mp3..

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования