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 и т.д. ?
|