Fusion de la variable avec une chaîne dans le fichier de configuration

24

J'ai la configuration suivante dans mon fichier conf

upload_set_form_field $upload_field_name.name "$upload_file_name";

Mais je veux changer le nom du paramètre choisi en:

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

Je peux donc obtenir "pièce jointe [nom]" mais cela ne fonctionne pas. Je serais très heureux si quelqu'un pouvait m'aider à fusionner des variables avec une chaîne dans le fichier de configuration nginx :).

Swistak
la source

Réponses:

38

Cela marche:

set $foo = 'foo';
set $foobar "${foo}bar";
bk138
la source
2
Cela a fonctionné pour moi! Merci. Je l'ai fait:set $object "$1"; set $object "${object}Display";
Carl Bennett
4

Nginx n'a pas de caractère de concaténation, il est plutôt basé sur des caractères valides et invalides, par exemple dans la directive:

try_files $uri $uri/ @fallback;

$ uri est la variable et / est une chaîne à ajouter car / ne peut pas être dans un nom de variable.

De même, vous devriez essayer

$upload_field_name[name] "$upload_file_name";

Si cela ne fonctionne pas, essayez.

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

Cependant, je ne peux pas dire si le module de téléchargement le permettra. Des erreurs de syntaxe mineures peuvent également être présentes.

Martin Fjordvald
la source