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

Форум PHP

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

 

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

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

тема: Установка имени сохраняемого файла
 
 автор: Sfinks   (18.07.2007 в 19:07)   письмо автору
 
 

К примеру есть скрипт download.php, который загружает mp3 из сети, обрабатывает и отдает пользователю:

<?php
  $s 
file_get_contents("http://anyhost.ru/anysong.mp3");
  
// какая-то обработка
  
header("Content-Type: audio/mpeg");
  echo 
$s;
?>

Какой заголовок нужно передать браузеру, чтобы когда пользователь нажмет "Сохранить", в окне сохранения стояло имя файла не download.php, а anysong.mp3?

   
 
 автор: Faraon   (19.07.2007 в 08:50)   письмо автору
 
   для: Sfinks   (18.07.2007 в 19:07)
 


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

   
 
 автор: Sfinks   (19.07.2007 в 23:18)   письмо автору
 
   для: Faraon   (19.07.2007 в 08:50)
 

Огромное спасибо!
А какие еще подобные малоизвестные заголовки существуют?
Или, если есть, ссылочку на ман дайте, plz

   
 
 автор: cheops   (20.07.2007 в 10:43)   письмо автору
 
   для: Sfinks   (19.07.2007 в 23:18)
 

Если файл большой можно указать ещё его размер при помощи заголовка Content-length, если не хотите, чтобы браузер или операционная система попытались воспроизвести файл, можно добавить заголовок Content-type: application/octet-stream
<?php 
  $filename 
basename($_GET['down']);
  
header("Content-Disposition: attachment; filename=$filename"); 
  
header("Content-type: application/octet-stream"); 
  
header("Content-length: ".filesize($_GET['down']));
  echo 
file_get_contents($_GET['down']);
?> 

Это HTTP-заголовки, описываются они в нескольких RFC-документах. Стандарт протокола HTTP можно найти в RFC 2616 по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=2283 можно найти русский перевод.

   
 
 автор: Sfinks   (20.07.2007 в 19:45)   письмо автору
 
   для: cheops   (20.07.2007 в 10:43)
 

Спасибо.
И еще один вопрос. Есть какая-то программа, которая записывает переданные браузером в сеть заголовки? Под винды.
Прост иногда нужно скриптом съэмитировать обращение человека к серверу, а не получается. И не получается отследить что же такое браузер в сеть говорит, чего скрипт забывает.

   
 
 автор: cheops   (20.07.2007 в 20:08)   письмо автору
 
   для: Sfinks   (20.07.2007 в 19:45)
 

Для этого обычно используют сниферы http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=32627.

   
 
 автор: JESS   (21.07.2007 в 15:15)   письмо автору
 
   для: Faraon   (19.07.2007 в 08:50)
 

а можно сделать чуточку подругому?

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

при загрузке файла сразу выходит окна на сохранение на компютер, а если так что бы можно было прослушать эго в окне, а потом нажать кнопку сохранить (при помощи Quick Time) и выходит
название пeсни, или anysong.mp3 =?

   
Rambler's Top100
вверх

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