44

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 :).

sysadmin1138
  • 133,124
  • 18
  • 176
  • 300
Swistak
  • 541
  • 1
  • 4
  • 4

2 Answers2

66

This works:

set $foo = 'foo';
set $foobar "${foo}bar";
bk138
  • 760
  • 5
  • 6
6

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.

Martin Fjordvald
  • 7,749
  • 1
  • 30
  • 35