Scalanie zmiennej z łańcuchem w pliku konfiguracyjnym

24

Mam następujące ustawienia w moim pliku conf

upload_set_form_field $upload_field_name.name "$upload_file_name";

Ale chcę zmienić nazwę wybranego parametru na:

upload_set_form_field ($upload_field_name+"[name]") "$upload_file_name";

Mogę uzyskać „załącznik [nazwa]”, ale to nie działa. Byłbym bardzo szczęśliwy, gdyby ktoś mógł mi pomóc w scalaniu zmiennych z łańcuchem w pliku konfiguracyjnym nginx :).

Swistak
źródło

Odpowiedzi:

38

To działa:

set $foo = 'foo';
set $foobar "${foo}bar";
bk138
źródło
2
To zadziałało dla mnie! Dzięki. Zrobiłem to:set $object "$1"; set $object "${object}Display";
Carl Bennett,
4

Nginx nie ma znaku konkatenacji, opiera się raczej na prawidłowych i niepoprawnych znakach, na przykład w dyrektywie:

try_files $uri $uri/ @fallback;

$ uri jest zmienną i / jest łańcuchem do dołączenia, ponieważ / nie może znajdować się w nazwie zmiennej.

Podobnie powinieneś spróbować

$upload_field_name[name] "$upload_file_name";

Jeśli to nie zadziała, spróbuj.

set $foo [name];
$upload_field_name$foo "$upload_file_name";

Nie mogę jednak powiedzieć, czy moduł przesyłania na to pozwoli. Mogą również występować drobne błędy składniowe.

Martin Fjordvald
źródło