Комментарии 6
BTW, если вам необходимо послать файл с сервера клиенту (download) и вы испльзуете Java + Spring, то можно использовать ContentDisposition класс — чуть подробнее на stackoverflow
Я использую Kotlin без Spring, но это не мешает взять этот класс из состава Spring и использовать в своем проекте. В принципе можно даже в либу вынести.
Спасибо за наводку.
Я работаю со спрингом, но не знал о наличии этого класса. К сожалению, они добавили его только в Spring 5. Далеко не весь enterprise успел перейти на него.
Я работаю со спрингом, но не знал о наличии этого класса. К сожалению, они добавили его только в Spring 5. Далеко не весь enterprise успел перейти на него.
Если вам надо отдать файл с именем в utf-8 — то самое лучшее решение это не указывать имя в заголовках, а сделать URL, оканчивающийся именем (не забудьте про экранирование):
/download/1234/Название%20на%20русском.pdf
Это работало даже в IE6 (которому > 15 лет).
Возможность указывать utf-8 в заголовках появилась не очень давно и старые браузеры это не поймут. Впрочем, если указывать для них fallback-вариант латинницей, это тоже работающий вариант.
/download/1234/Название%20на%20русском.pdf
Это работало даже в IE6 (которому > 15 лет).
Возможность указывать utf-8 в заголовках появилась не очень давно и старые браузеры это не поймут. Впрочем, если указывать для них fallback-вариант латинницей, это тоже работающий вариант.
Спасибо за дополнение.
Да, вы правы. Это рабочий вариант и он определенно достоин упоминания.
Из минусов стоит отметить, что далеко не всегда удобно использовать имя файла в запросе, поскольку:
— Клиентское приложение может и не знать имя файла до его запроса. Имя файла может быть не нужно на фронте и будет необходимость дополнительно попросить REST рассчитать имя файла.
— Работать с токеном / id в ресте удобней, чем с именем файла. И валидация, и поиск, и security проще.
Да, вы правы. Это рабочий вариант и он определенно достоин упоминания.
Из минусов стоит отметить, что далеко не всегда удобно использовать имя файла в запросе, поскольку:
— Клиентское приложение может и не знать имя файла до его запроса. Имя файла может быть не нужно на фронте и будет необходимость дополнительно попросить REST рассчитать имя файла.
— Работать с токеном / id в ресте удобней, чем с именем файла. И валидация, и поиск, и security проще.
— Клиентское приложение может и не знать имя файла до его запроса. Имя файла может быть не нужно на фронте и будет необходимость дополнительно попросить REST рассчитать имя файла.301/302 вас спасёт
— Работать с токеном / id в ресте удобней, чем с именем файла. И валидация, и поиск, и security проще.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Использование UTF-8 в HTTP заголовках