ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re[2]: Perl докачка и т.д.



Здравствуйте Igor,

Saturday, October 28, 2006, 10:59:24 PM, you wrote:

>> Запутался совсем, необходимо написать модуль который бы отдавал файл и
>> делал инсерт в базу после того, как файл будет полностью отправлен. По
>> суте обычный счетчик. В конфиге написал:
>>  location /files {
>>    perl getfile::handler;
>>  }
>>
>>  location /insert {
>>    internal;
>>    perl insfile::handler;
>>  }
>>
>> В getfile.pm следующее:
>> ...
>>  $r->allow_ranges;
>>  $r->send_http_header;
>>  $r->sendfile($fn);
>>  $r->internal_redirect("/insert?sid=$sid");
>>  return OK;
>> ...
>> Проблема в том, что докачка не поддерживается
> Для того, чтобы была докачка, у ответа должна быть длина:

$r->>allow_ranges;
$r->>header_out("Content-Length", -s $fn);
$r->>send_http_header;
$r->>sendfile($fn);

Спасибо, заработало.

>> /insert вызывается
>> всякие раз когда запрос закончен, даже если файл не докачен полностью.

$r->>sendfile и $r->internal_redirect начинают работать сразу после
> того, как перл выполнил "return OK".

>> Пробовал вызывать /insert через post_action но не догадался как
>> передать нужный мне параметр.
> Из перлого обработчика на данный момент нельзя поставить переменные nginx'а.

И как быть в таком случае? Такой функционал планируется? А как из
перлового обработчика получить переменную nginx'а например ту, которую
выставляет mod_geo и т.д. ?





 




Copyright © Lexa Software, 1996-2009.