понедельник, 18 июля 2016 г.

Русские буквы в имени файла, отдаваемого сервлетом

Проблема
При отдаче файла сервлетом, имя ,которое сохраняется у пользователя не содержит русские буквы (вместо них пробелы).

Решение
Имя файла должно быть закодировано  javax.mail.internet.MimeUtility.encodeText()

Т.е. пример должен выглядеть как-то так:

response.setHeader("Content-Type", "application/file; charset=utf-8");
response.setHeader("Content-Disposition", "attachment;filename="+ MimeUtility.encodeText(dataFilePath.getFileName().toString()));

response.getOutputStream().write(FileUtils.readFileToByteArray(dataFilePath.toFile()));