upload_set_form_field

Директива `upload_set_form_field` изменяет поля запроса, указывая, какие входящие файлы должны быть сохранены и как они должны быть представлены в последующем запросе.

Синтаксисupload_set_form_field field_name value;
По умолчаниюnone
Контекстhttp, server, location, if in location, limit_except
Аргументы2

Описание

Директива upload_set_form_field является частью модуля загрузки NGINX и позволяет задавать, какие поля файлов должны быть заменены в теле запроса на определённые поля формы, ссылающиеся на временное хранилище загруженных файлов. Эта директива принимает два аргумента: имя поля формы, которое будет представлять загруженный файл, и переменную, содержащую значение для этого поля, обычно путь к файлу, сгенерированный процессом загрузки. С помощью этой директивы NGINX может бесшовно интегрировать загрузку файлов в логику обработки веб-приложений, позволяя управлять тем, как метаданные файлов передаются в модифицированном запросе.

Когда происходит загрузка, файл сначала сохраняется во временном местоположении, определённом директивой upload_store. После загрузки файлов исходное тело запроса изменяется: поля файлов заменяются новыми полями, определёнными с помощью upload_set_form_field. Эти новые поля содержат ссылки на загруженные файлы, что упрощает доступ к ним на более поздних этапах обработки запроса. Этот механизм особенно полезен для приложений, которым требуется обрабатывать загрузки файлов в рамках рабочих процессов, поскольку он позволяет лучше инкапсулировать данные о файле в запросе, без необходимости отправлять исходное содержимое файла в последующем запросе.

Например, в приложении пользователи могут загружать фотографии профиля, и вы хотите представить загруженное изображение под определённым ключом в данных формы для дальнейшей обработки. Используя upload_set_form_field, вы можете точно указать, какое поле формы должно использоваться для ссылки на путь к загруженному файлу или его метаданные, обеспечивая бесшовную работу логики обработки с загруженным содержимым и избегая сложностей, часто связанных с непосредственной обработкой сырых файлов в полезной нагрузке запроса.

Пример конфига

location /upload {
    upload_pass /upload/save;
    upload_set_form_field "profile_picture" "$upload_tmp_path";
    upload_store /tmp/uploads;
}

Убедитесь, что пути к файлам, используемые в аргументе value, указаны правильно; неправильно отформатированные пути приведут к ошибкам или непредвиденному поведению.

Обратите внимание на то, правильно ли настроена директива upload_store, поскольку отсутствующие или неверные пути хранилища могут привести к сбою загрузок.

← Ко всем директивам