Re: Переменная с именем файла
Валентин Бартенев
ne at vbart.ru
Tue Aug 14 18:33:51 UTC 2012
On Tuesday 14 August 2012 22:15:56 Михаил Монашёв wrote:
> Здравствуйте.
>
> > Делается запрос к http://site.ru/path/file.ext?arg=value .
> >
> > Скажите пожалуйста, в какой внутренней переменной nginx-а будет
> > храниться имя файла с расширением, т.е. "file.ext" .
> >
> > $request_filename хранит путь, а мне нужно только имя файла. Хочу
> > выдать заголовок через add_header примерно так:
> >
> > add_header Content-Disposition 'attachment; filename="Prefix
> > $filename"';
>
> попробовал как временное решение так:
>
> map $request_filename $filename {
> default "";
> "~*([^/]+)\.(gif|jpe?g|png).*?$" " $1.$2";
> }
>
> и сделал запрос к site.ru/path/1.png.
>
> в $filename записалось " $1.$2" вместо ожидаемых " 1.png" . Что я
> сделал не так?
1. В правой части можно использовать только одну переменную или строку.
2. Позиционные выделения в map не поддерживаются.
Правильно:
map $request_filename $filename {
default "";
"~*(?<fn>[^/]+\.(?:gif|jpe?g|png))$" $fn;
}
--
Валентин Бартенев
Подробная информация о списке рассылки nginx-ru