Variable mit String in Konfigurationsdatei verschmelzen

24

Ich habe das folgende Setup in meiner Conf-Datei

upload_set_form_field $upload_field_name.name "$upload_file_name";

Aber ich möchte den gewählten Parameternamen ändern in:

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

Ich kann also "attachment [name]" bekommen, aber das funktioniert nicht. Ich würde mich sehr freuen, wenn mir jemand beim Zusammenführen von Variablen mit String in der Nginx-Konfigurationsdatei helfen könnte :).

Swistak
quelle

Antworten:

38

Das funktioniert:

set $foo = 'foo';
set $foobar "${foo}bar";
bk138
quelle
2
Das hat bei mir funktioniert! Vielen Dank. Ich tat dies:set $object "$1"; set $object "${object}Display";
Carl Bennett
4

Nginx hat kein Verkettungszeichen, sondern basiert auf gültigen und ungültigen Zeichen, zum Beispiel in der Direktive:

try_files $uri $uri/ @fallback;

$ uri ist die Variable und / ist ein String, der angehängt werden muss, da / nicht in einem Variablennamen enthalten sein darf.

Ebenso solltest du es versuchen

$upload_field_name[name] "$upload_file_name";

Wenn dies nicht funktioniert, versuchen Sie es.

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

Ich kann allerdings nicht sagen, ob das Upload-Modul dies überhaupt zulässt. Möglicherweise sind auch kleinere Syntaxfehler vorhanden.

Martin Fjordvald
quelle