Загрузка файла Play Framework с пустыми параметрами

Я работаю над приложением Play Framework 1.4, используя Apache2.4 в качестве веб-сервера.

Я пытаюсь выполнить базовую загрузку файла, однако, если я пытаюсь загрузить файл размером более 487 КБ, параметры пусты, если я загружаю файл размером менее 487 КБ, параметры есть, и я могу получить доступ к файлу из пути tmp . Вот код:

// File <= 487KB Logs "params: {file=[Ljava.lang.String;@160b7aab}"
// File > 487KB Logs "params: {}"
public static String uploadFile() {
    Logger.info("params: %s", params.all());
    return "";
}

У меня есть настройка конфигурации apache, чтобы разрешить полезную нагрузку и заголовки большого размера:

LimitRequestFields 0
LimitRequestBody 0
LimitRequestFieldSize 2097152

Любой совет по этому поводу был бы замечательным.


person Glen Robson    schedule 30.08.2018    source источник
comment
Также не уверен, поможет ли это, но если я отправляю дополнительные параметры в полезной нагрузке вместе с файлом, они присутствуют, когда файл меньше 487 КБ, но не когда файл больше 487 КБ. Это похоже на проблему с размером полезной нагрузки, но я не вижу никаких настроек ни в Play, ни в Apache, которые ограничивают это.   -  person Glen Robson    schedule 30.08.2018


Ответы (1)


Итак, оказалось, что это ограничение конфигурации Play Framework. Довольно сложно найти вложенные в их документацию. Вам нужно установить максимальную длину содержимого для файлов любого размера, которые вы хотите загрузить (в байтах):

play.netty.maxContentLength = 2097152

В качестве альтернативы, если вам не нужен максимальный размер, вы можете установить его на -1.

play.netty.maxContentLength = -1

Документация здесь

person Glen Robson    schedule 31.08.2018