Как сохранять файл из Response сервиса
Сервис отдаёт пользователю скачиваемый pdf файл, но в зависимости от прав пользователя на файл должен или не должен накладываться ватермарк.
Интересует как средствами фильтра в сервлетах java сохранить файл на сервере и уже потом на него кинуть ватермарк и отдать пользователю?
Как взять файл из потока ответа сервера и сохранить на этом же сервере?
Ответы (1 шт):
Если для установки watermark необходимо использовать какое-то внешнее средство, которое принимает в себя файл, то сконвертируйте ответ сервера в ByteArrayOutputStream и запишите его в файл https://stackoverflow.com/a/17488562/3744622.
Чтобы получить byteArrayOutputStream вам нужно понимать какой тип данных пришёл, если это byte array, то конвертировать можно так: https://stackoverflow.com/a/18575536/3744622
Если это base64, то так https://stackoverflow.com/a/41935362/3744622
Но если есть возможность не использовать файлы, а передать byte array или, скажем, контент файла в base64 представлении напрямую минуя файловую систему сервера, то воспользуйтесь этим вариантом.
Общая рекомендация - не сохраняйте на сервере никаких файлов - это будет всегда медленнее и затратнее, чем если бы вы оперировали с контентом файла из ОЗУ.