Forum Webscript.Ru
Программирование => PHP => Тема начата: Foshvad от 29 Августа 2002, 18:59:45
-
Вопрос следующий. Какова правильная последовательность заголовков перед посылкой браузеру файла (для "Сохранить как...")
У меня все отлично работает в 6.0 и 5.0 со следующими заголовками:
header("Cache-control: private");
header("Content-Type: ".$attach[\'type\']);
header("Content-Disposition: attachment; filename=".$attach[\'name\']);
header("Content-transfer-encoding: binary");
header("Content-length: ".$attach[\'size\']);
readfile($file_path);
exit;
Но я где-то слышал, что для IE5.5 и какого-то там IE 4.x заголовки должны отличаться, иначе с ними ничего работать не будет.
Так вот, не знает ли что-нить какие именно заголовки должны отличаться?
P.S. И как послать дату изменения не в GMT (уж больно неудобно)?
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
-
для IE 5.5+ вот так должно быть:
header("Cache-control: private");
header("Content-Type: ".$attach[\'type\']);
header("Content-Disposition: filename=".$attach[\'name\']);
header("Content-transfer-encoding: binary");
header("Content-length: ".$attach[\'size\']);
readfile($file_path);
exit;
т.е. без указания "attachment"
-
Britva
т.е. без указания "attachment"
Т.е. с указанием такового оно не сработает? Ты уверен?
-
вот кусок кода из phpmyadmin:
// Send headers
header(\'Content-Type: \' . $mime_type);
// lem9 & loic1: IE need specific headers
if (PMA_USR_BROWSER_AGENT == \'IE\') {
header(\'Content-Disposition: inline; filename="\' . $filename . \'.\' . $ext . \'"\');
header(\'Expires: 0\');
header(\'Cache-Control: must-revalidate, post-check=0, pre-check=0\');
header(\'Pragma: public\');
} else {
header(\'Content-Disposition: attachment; filename="\' . $filename . \'.\' . $ext . \'"\');
header(\'Expires: 0\');
header(\'Pragma: no-cache\');
}
-
Доктор
Уверен! просто когда стоит attachment, в этих версиях ИЕ он предлагает сохранить не файл, а сам скрипт, точнее его хтмл. только после нескольких открытий, уже можно сохранять.
Dm
inline плох тем, что если файл большой - то пока браузер его полностью не скачает он его не предложит сохранить, и пользователь пребывает в недоумении :)
уже проходил это :) в vB в этом смысле лучше сделано.
-
Britva, полностью согласен :)
просто это код готовой реализации в подтверждение:
т.е. без указания "attachment"
-
хм... спасибо, буду знать