Получить имя файла из Content-Disposition
Я загружаю BLOB-файл из формы HTML в базу данных MySQL, используя JSP. Мне нужно вставить имя файла в БД. Я знаю, что имя файла хранится в заголовке Content-Disposition, как я могу получить это? Заранее спасибо!
1 ответ
Решение
Если вы загрузили файл, используя JavaEE 6 с HttpServletRequest.getPart
:
Part part = request.getPart("xxx"); // input type=file name=xxx
String disposition = part.getHeader("Content-Disposition");
String fileName = disposition.replaceFirst("(?i)^.*filename=\"?([^\"]+)\"?.*$", "$1");
Смотрите часть.
Как упомянул @Marc, я не рассматривал кодирование URL. (Он также сделал кавычки вокруг имени файла необязательными.)
fileName = URLDecoder.decode(fileName, StandardCharsets.ISO_8859_1);
Не проверено, но кодировка HTTP для заголовков должна быть по умолчанию ISO-8859-1.