从Content-Disposition获取文件名

我正在使用JSP将blob文件从HTML表单上传到MySQL数据库。 我需要将文件名插入DB。 我知道文件名存储在Content-Disposition标题中,我怎么能得到它? 提前致谢!

如果您使用带有HttpServletRequest.getPart JavaEE 6上传了该文件:

 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。