Perl докачка и т.д.
    Igor Sysoev 
    is at rambler-co.ru
       
    Sat Oct 28 19:59:24 MSD 2006
    
    
  
On Fri, 27 Oct 2006, Konstantin Petrenko 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'а.
Игорь Сысоев
http://sysoev.ru
    
    
More information about the nginx-ru
mailing list