从内容配置中提取文件名

extract file name from content disposition

我的负载有 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 获取文件名。我怎样才能得到这个。

只需注入 FormDataContentDisposition,然后从 that 获取文件名。

public Response addWorkflowSchema(
                       @FormDataParam("bpmndata") InputStream in,
                       @FormDataParam("bpmndata") FormDataContentDisposition fdc) {

    String fileName = fdc.getFileName();
}

InputStream只会是文件部分的内容。它不包含 headers,因此您无需从中提取任何内容。