I the have following setup in my conf file

upload_set_form_field $upload_field_name.name "$upload_file_name";

But I want change chosen param name to:

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

So I can get "attachment[name]" but this doesn't work. I would be very happy if someone could help me with merging variables with string in nginx config file :).

2 Answers 2


This works:

set $foo = 'foo';
set $foobar "${foo}bar";
  • 3
    This worked for me! Thanks. I did this: set $object "$1"; set $object "${object}Display"; Dec 4, 2015 at 19:48

Nginx does not have a concatenation character, rather it's based on valid and invalid characters, for instance in the directive:

try_files $uri $uri/ @fallback;

$uri is the variable and / is a string to append since / cannot be in a variable name.

Similarly you should try

$upload_field_name[name] "$upload_file_name";

If this doesn't work then try.

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

I cannot say if the upload module will even allow this, though. Minor syntax errors might also be present.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .