Слияние переменной со строкой в ​​конфигурационном файле

24

У меня есть следующие настройки в моем файле конфигурации

upload_set_form_field $upload_field_name.name "$upload_file_name";

Но я хочу изменить имя выбранного параметра на:

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

Так что я могу получить "приложение [имя]", но это не работает. Я был бы очень рад, если бы кто-нибудь помог мне объединить переменные со строкой в ​​конфигурационном файле nginx :).

Swistak
источник

Ответы:

38

Это работает:

set $foo = 'foo';
set $foobar "${foo}bar";
bk138
источник
2
Это сработало для меня! Спасибо. Я сделал это:set $object "$1"; set $object "${object}Display";
Карл Беннетт
4

Nginx не имеет символа конкатенации, скорее он основан на допустимых и недействительных символах, например, в директиве:

try_files $uri $uri/ @fallback;

$ uri - это переменная, а / - это строка для добавления, поскольку / не может быть в имени переменной.

Точно так же вы должны попробовать

$upload_field_name[name] "$upload_file_name";

Если это не сработает, попробуйте.

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

Я не могу сказать, позволит ли модуль загрузки даже это. Незначительные синтаксические ошибки также могут присутствовать.

Мартин Фьордвальд
источник