从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。