Автор Тема: header\'ы для загрузки файла. Какие они?  (Прочитано 4931 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Foshvad

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 0
    • Просмотр профиля
Вопрос следующий. Какова правильная последовательность заголовков перед посылкой браузеру файла (для "Сохранить как...")

У меня все отлично работает в 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"); 

Оффлайн Britva

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1660
  • +0/-0
  • 0
    • Просмотр профиля
    • http://eugeny.com
header\'ы для загрузки файла. Какие они?
« Ответ #1 : 07 Сентября 2002, 20:12:49 »
для 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"
Евгений aka Razor,

Оффлайн Доктор

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 487
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
header\'ы для загрузки файла. Какие они?
« Ответ #2 : 07 Сентября 2002, 21:19:32 »
Britva
Цитировать
т.е. без указания "attachment"

Т.е. с указанием такового оно не сработает? Ты уверен?

Оффлайн Dm

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1263
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
header\'ы для загрузки файла. Какие они?
« Ответ #3 : 07 Сентября 2002, 22:01:41 »
вот кусок кода из 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\');
    }
с уважением,
магистр белой магии.

Оффлайн Britva

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1660
  • +0/-0
  • 0
    • Просмотр профиля
    • http://eugeny.com
header\'ы для загрузки файла. Какие они?
« Ответ #4 : 08 Сентября 2002, 00:33:59 »
Доктор
Уверен! просто когда стоит attachment, в этих версиях ИЕ он предлагает сохранить не файл, а сам скрипт, точнее его хтмл. только после нескольких открытий, уже можно сохранять.
Dm
inline плох тем, что если файл большой - то пока браузер его полностью не скачает он его не предложит сохранить, и пользователь пребывает в недоумении :)
уже проходил это :) в vB в этом смысле лучше сделано.
Евгений aka Razor,

Оффлайн Dm

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1263
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
header\'ы для загрузки файла. Какие они?
« Ответ #5 : 08 Сентября 2002, 01:14:08 »
Britva, полностью согласен :)
просто это код готовой реализации в подтверждение:
Цитировать
т.е. без указания "attachment"
с уважением,
магистр белой магии.

Оффлайн Foshvad

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 0
    • Просмотр профиля
header\'ы для загрузки файла. Какие они?
« Ответ #6 : 08 Сентября 2002, 21:13:11 »
хм... спасибо, буду знать

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28