java是否可以在多部分请求中从Flux<FilePart>设置ContentDisposition头?
我正试图使用WebClient
作为多部分请求的一部分,将上载从一个控制器“传递”到另一个服务器。我终于可以上传文件了,但是我在从FilePart
流媒体获取文件名时遇到了麻烦。我甚至不确定这是否可能
这是导致问题的一段代码:
private MultiValueMap<String, HttpEntity<?>> getMultipartPayload(Flux<FilePart> fileUploadFlux) {
MultipartBodyBuilder builder = new MultipartBodyBuilder();
Flux<DataBuffer> dataBufferFlux = fileUploadFlux.flatMap(Part::content);
// spring doesn't have an encoder for FilePart, so we must extract the DataBuffer
builder.asyncPart("file", dataBufferFlux, DataBuffer.class).headers(h -> {
// need to set content-disposition header
// but - this doesn't work as the filename is still a flux
h.setContentDispositionFormData("file", fileUploadFlux.map(FilePart::filename));
});
return builder.build();
}
请注意,我必须从Flux<FilePart>
中提取Flux<DataBuffer>
,因为Spring无法找到FilePart
(No suitable writer found for part: file
)的写入程序
是否可以以这种方式设置内容处置标头
共 (0) 个答案