我使用JSP将blob文件从HTML表单上传到数据库。我需要将文件名插入到DB中。我知道文件名存储在Content-Disposition header中,我如何才能获得它?
发布于 2014-12-01 18:49:13
如果您使用带有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");参见Part。
正如@Marc提到的,我没有处理URL编码。(他还将文件名两边的引号设为可选。)
fileName = URLDecoder.decode(fileName, StandardCharsets.ISO_8859_1);未选中,但标头的HTTP编码应为默认ISO-8859-1。
https://stackoverflow.com/questions/27226258
复制相似问题