java - 可以从 Flux 设置 Content-Disposition 标头在多部分请求中?
问题描述
作为多部分请求的一部分,我正在尝试使用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<DataBuffer>
从Flux<FilePart>
Spring 无法找到FilePart
( No suitable writer found for part: file
) 的作者中提取 。
是否可以以这种方式设置 content-disposition 标头?
解决方案
推荐阅读
- r - 如何在r闪亮中固定主面板的位置
- android - LinearLayout 是否有替代 layout_alignBaseline
- php - 更改 PHP 数组中条目的键
- azure-devops - 如何将 Azure DevOps Extension for Azure CLI 与 Azure DevOps Server 一起使用?
- react-native - 从任何地方导航到子屏幕
- java - 使用正则表达式在字符串中搜索子字符串
- node.js - nodejs/vanilla 中的 Apollo-client 未触发订阅
- entity-framework - 为什么 IMutableEntityType.BaseType 对于直接从基类继承的实体为空?
- c# - Unity中未分配的变量
- azure - 使用任何配置禁用某些 Azure 功能