Mesclando variável com string no arquivo de configuração

24

Eu tenho a seguinte configuração no meu arquivo conf

upload_set_form_field $upload_field_name.name "$upload_file_name";

Mas quero alterar o nome do parâmetro escolhido para:

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

Para que eu possa obter "anexo [nome]", mas isso não funciona. Eu ficaria muito feliz se alguém pudesse me ajudar com a mesclagem de variáveis ​​com string no arquivo de configuração nginx :).

Swistak
fonte

Respostas:

38

Isso funciona:

set $foo = 'foo';
set $foobar "${foo}bar";
bk138
fonte
2
Isso funcionou para mim! Obrigado. Eu fiz o seguinte:set $object "$1"; set $object "${object}Display";
Carl Bennett
4

O Nginx não possui um caractere de concatenação, é baseado em caracteres válidos e inválidos, por exemplo, na diretiva:

try_files $uri $uri/ @fallback;

$ uri é a variável e / é uma string a ser anexada, pois / não pode estar no nome de uma variável.

Da mesma forma, você deve tentar

$upload_field_name[name] "$upload_file_name";

Se isso não funcionar, tente.

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

Mas não posso dizer se o módulo de upload permitirá isso. Erros menores de sintaxe também podem estar presentes.

Martin Fjordvald
fonte