从Content-Disposition获取文件名

h2c*_*h2c 5 java jsp http content-disposition

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

Joo*_*gen 17

如果您使用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");
Run Code Online (Sandbox Code Playgroud)

部分.


正如@Marc提到的,我没有处理URL编码.(他还使文件名周围的引号可选.)

fileName = URLDecoder.decode(fileName, StandardCharsets.ISO_8859_1);
Run Code Online (Sandbox Code Playgroud)

未选中,但标头的HTTP编码应为默认ISO-8859-1.