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

Konstantin Petrenko rage at kuz.ru
Mon Oct 30 04:58:44 MSK 2006


Здравствуйте 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 и т.д. ?







More information about the nginx-ru mailing list