perl и header_out

Igor Sysoev is at rambler-co.ru
Mon Dec 10 10:33:04 MSK 2007


On Sun, Dec 09, 2007 at 11:57:22PM +0200, deniswork at uzvik.kiev.ua wrote:

> > Нужно так:
> 
> >   $r->variable("limit_rate", "16k");
> 
> >   $r->header_out("Content-Disposition", "attachment; filename=\"file.txt\"");
> >   $r->send_http_header("application/octet-stream; charset=cp1251");
> 
> >   $r->internal_redirect("/dl/file.tx");
> >   return OK;
> 
> 
> Сделал, спасибо!
> 
> Но проблемма ниже(хедеры в теле файла) не решилась.
>         location /dl {
>             limit_conn   one  2; 
>             root /home/denis/;
>             internal;
>         }
> 
> sub dl {
>     my $r = shift;
> 
>     $r->header_out("Content-Disposition", "attachment; filename=\"file.txt\"");
>     $r->send_http_header("application/octet-stream; charset=cp1251");
>     $r->internal_redirect("/dl/file.txt");
> 
>     return OK;
> }

Я ошибся. Перед internal_redirect вообще не нужно посылать заголовок, потому
что это сделает сам nginx. То есть, код такой:

    $r->header_out("Content-Disposition", "attachment; filename=\"file.txt\"");
    $r->internal_redirect("/dl/file.txt");
    return OK;

Единственное, я не уверен, что "Content-Disposition" попадёт в ответ.


-- 
Игорь Сысоев
http://sysoev.ru








More information about the nginx-ru mailing list