我的负载有 Content-Disposition 字段。我正在尝试上传一个 bpmn 文件。所以在后端我需要解析输入流并提取这个文件名。但我无法找到解决方案。我正在使用 jesrey 进行休息。
我试过:
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_JSON)
public Response addWorkflowSchema(@FormDataParam("bpmndata") InputStream uploadedInputStream,
String filename,
@Context HttpServletRequest request)
获取整个负载数据。但只有当我删除 FormDataParam 时,我才能获取请求正文。
请求负载:
------WebKitFormBoundary8CCb878TyZksE9go
Content-Disposition: form-data; name="bpmndata"; filename="process.bpmn"
Content-Type: application/octet-stream
------WebKitFormBoundary8CCb878TyZksE9go--
我需要从 Content-Disposition 获取文件名。我怎样才能得到这个。
最佳答案
只需注入(inject) FormDataContentDisposition
也,并从that 中获取文件名。
public Response addWorkflowSchema(
@FormDataParam("bpmndata") InputStream in,
@FormDataParam("bpmndata") FormDataContentDisposition fdc) {
String fileName = fdc.getFileName();
}
InputStream
只会是文件部分的内容。它不包含 header ,因此您无需从中提取任何内容。
关于java - 从内容配置中提取文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31598622/