Заголовки для скачивания архива rar.

beba

Новичок
Заголовки для скачивания архива rar.

Пытаюсь сделать так, чтоб можно было скачать архив rar, который создается в процессе выполнения скрипта.
Делаю это так:
Передаю заголовки:
PHP:
  header("HTTP/1.1 200 OK");
  header("Date: Thu, 22 Sep 2005 08:37:10 GMT");
  header("Last-Modified: Thu, 22 Sep 2005 08:37:10 GMT");
  header("Connection: close");
  header("Content-Type: application/rar");
  header("Content-Disposition: attachment; filename=download.rar");
Скачивается. При открытии говорит: "Файл поврежден или имеет неизвестный формат."
В чем я ошибся?
З.Ы. Искал ответ на форуме, Faq и Статьях... Не нашел... :(
 

tony2001

TeaM PHPClub
Причем тут заголовки?
Сами данные у тебя битые - их и смотри.
 

beba

Новичок
Я беру скачиваю этот архив по ftp(есть возможность) и все ок, т.е. нормально распаковывается.
 

tony2001

TeaM PHPClub
Еще раз: сами данные у тебя битые.
Посмотри что на самом деле отдаёт скрипт в кач-ве данных и сравни с тем, что должен.
 

kvf77

Red Devil
beba

вполне возможно, что сервер не принимает его как бинарный, а рассматривает как текстовый со всеми последствиями - надо в конфиге сервера обозначить его как бинарный
 

beba

Новичок
kvf77
Сделал....

Нашел проблему:
Получается этот файл есть ни что иное, как код скрипта, который был бы виден при действии Просмотр HTML кода в IE или Source в Oper'е...
Так как мне поступить???
 

Alexandre

PHPПенсионер
beba отсутствует хидер Content-Length

отсюда и размер не соответствует
 

beba

Новичок
Alexandre
Сделал..

kruglov
Додумался...
Забыл сделать readfile... :(((

А сейчас файл скачиваеться, при открытии архива пишет предупреждение : Неожиданный конец архива.
Хотя содержание архива верное.

Что теперь? .... Опять подумать... :)))
З.Ы. Размер этого же файла архива, скаченного по фтп такой же как и размер файла скаченного через скрипт.
 

SiMM

Новичок
> Размер этого же файла архива, скаченного по фтп такой же как и размер файла скаченного через скрипт.
Это ещё не значит, что его не "побил" сервер, так что сравни файлы.
fc /?
 

beba

Новичок
SiMM
Да действительно файлы отличаются...
Почему то в файле который качается через скрипт вставляется дополнительная пустая строка сверху...
Файл закаченный скриптом

Rar!->
Файл через фтп
Rar!->
И еще пару ошибок, но я не смогу привести пример их, т.к. там есть символы... Я так понимаю, что тут мне больше самому нужно капаться, протсо укажите мне плиз на возможные проблемы, с которыми это может быть связано.
Еще раз приведу конечную часть кода:

PHP:
  header("HTTP/1.1 200 OK");
  header("Date: Thu, 09 Nov 2005 17:32:10 GMT");
  header("Last-Modified: Thu, 09 Nov 2005 17:32:10 GMT");
  header("Connection: close");	  	  	  
  header("Content-Transfer-Encoding: binary");
  header("Content-Type: application/rar");
  header("Content-Length: ".filesize('download.rar'));	  
  header("Content-Disposition: attachment; filename=download.rar");
  readfile('download.rar');
 

kruglov

Новичок
найдите пустую строчку в скрипте.

где-нить перед <? и после ?>, к примеру
 

SiMM

Новичок
> Почему то в файле который качается через скрипт вставляется дополнительная пустая строка сверху...
Если бы дело было (только) в этом - unrar бы не ругался. Он ищет сигнатуру по всему файлу. Это принцип, на котором основан SFX.

> Я так понимаю, что тут мне больше самому нужно капаться, протсо укажите мне плиз на возможные проблемы, с которыми это может быть связано.
Угу, самому. Возможные проблемы? Сервер перекодирует контент. Апач часом не русский? CharsetDisable
 

beba

Новичок
Спасибо всем за ваши сообщения и мнения..
Проблемку я решил...
Я сделал отдельный файл, в котором только праписан тод код, который находится на 2 сообщения выше этого. На него и делаю редирект когда мне надо. Все пошло и очень рад. До этого этот код шел сразу после вставки инклуда, в котором настройки, авторизация и т.д. Наверное что-то там повлияло, даже и не знаю...
З.Ы. Еще раз всем спасибо, всегда приятно пообщаться здесь....
Сразу же понимаешь, что все еще впереди, ... учиться и еще раз учиться.... :)
 
Сверху