[HTTP] Изменить имя файла
Content-Disposition: attachment; filename=abc.mp3?
Спасибо, попробую..
@header('Content-type: application/octetstream');(стянул из исходников phpMyAdmin, не знаю, на сколько это правильно)
@header('Content-Disposition: inline; filename="' . $filename . '"');
@header('Pragma: public');
Вот только если это картинка, некоторые браузеры игнорируют Content-type и не показывают диалог сохранения, а просто её открывают.
Кстати, идеальный вариант для размеров файла порядка средних мп3шек, когда скрипт еще и позволяет докачивать файл... (по идее, должно быть какое-то стандартное решение)
по идее, должно быть какое-то стандартное решениеСомневаюсь, что в PHP это вообще хоть как-то осуществимо.
Как ты узнаешь входящий запрос? Это всё обрабатывается самим веб-сервером/пхп, ещё до запуска твоего скрипта; тебе уже достаются всякие _GET, _POST и QUERY_STRING...
Content-Disposition: inlineЭто о чём?
'Pragma: public'И это...
http://www.zvon.org/tmRFC/RFC2183/Output/chapter2.html
http://www.zvon.org/tmRFC/RFC2616/Output/chapter14.html#sub3...
http://www.zvon.org/tmRFC/RFC2616/Output/chapter14.html#sub3...
Ну достаются тебе все эти переменные, и что? Именно в них и записан в частности range прочитав который ты сможешь понять какой именно кусок файла тебе нужно отдать.
Где записан range? В _GET? В _POST? Где?
thx
[_SERVER] => Arrayвытянуто из логов скрипта, который делает вид, что отдаёт большой по размеру контент:
(
[HTTP_HOST] => test.mahoro-san.net
[HTTP_ACCEPT] => */*
[HTTP_REFERER] => http://test.mahoro-san.net
[HTTP_USER_AGENT] => Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; Maxthon; .NET CLR 1.1.4322)
[HTTP_RANGE] => bytes=250000-
[HTTP_PRAGMA] => no-cache
[HTTP_CACHE_CONTROL] => no-cache
[HTTP_CONNECTION] => close
.....
<?php
//@header('Last-Modified: Mon, 10 Apr 2006 08:05:51 GMT');
//@header('ETag: "e212-1107-133af93b"');
@header('Accept-Ranges: bytes');
@header('Content-Length: 1000000');
//@header('Connection: close');
//@header('Content-Type: text/plain');
flush;
//@header('');
//@header('');
$f = fopen('log'.mt_rand'w');
ob_start;
print_r($GLOBALS);
$s = ob_get_contents;
fwrite($f,$s);
ob_end_clean;
fclose($f);
sleep(8);
?>
$_SERVER["HTTP_RANGE"]
Ясно.
Оставить комментарий
kruzer25
Грубо говоря, есть скрипт xxx.php, он выдаёт какие-то данные, Content-type - какой-нибудь application/something, хочется, чтобы в запросе на его сохранение было написано не xxx.php, а abc.mp3.Такое точно можно сделать (сам видел в действии но как?