如何解析javax.servlet.http.Part中的文件名
时间: 2023-12-19 08:05:55 浏览: 142
要解析javax.servlet.http.Part中的文件名,可以从Content-Disposition头部字段中获取filename属性的值。示例代码如下:
```java
Part part; // 获取到的Part对象
String contentDisposition = part.getHeader("Content-Disposition");
if (contentDisposition != null && contentDisposition.contains("filename")) {
// 解析文件名
String[] parts = contentDisposition.split(";");
for (String partStr : parts) {
if (partStr.trim().startsWith("filename")) {
String fileName = partStr.substring(partStr.indexOf('=') + 1).trim().replace("\"", "");
// 使用解析得到的文件名进行后续操作
break;
}
}
} else {
// 非文件上传
}
```
上述代码中,我们先判断Content-Disposition头部字段中是否包含filename属性,如果包含则解析出文件名,去掉其中的引号后使用该文件名进行后续操作。
相关问题
'java.lang.String javax.servlet.http.Part.getSubmittedFileName()'
这是一个 Java Servlet API 中的方法,用于获取客户端提交的文件名。在使用 multipart/form-data 类型的表单提交文件时,通过 Part 接口的实现类可以访问上传的文件,而 getSubmittedFileName() 方法可以获取文件名。需要注意的是,如果客户端没有提供文件名,则此方法返回 null。
req.getParameterValues获取文件名
`req.getParameterValues` 方法无法直接获取文件名,它用于获取 HTTP 请求中指定参数的值。如果想获取上传文件的文件名,可以使用 `javax.servlet.http.Part` 接口中的 `getSubmittedFileName()` 方法,例如:
```
Part filePart = request.getPart("file"); // 获取上传的文件
String fileName = filePart.getSubmittedFileName(); // 获取文件名
```
阅读全文