使用SpringMVC,我以这种方式在控制器中接收多部分文件
@RestController
public class FilesController {
@PostMapping(path = ("/files"), consumes = {"multipart/form-data", "multipart/mixed"})
public Reference createFile(
@RequestPart(value = "description") FileDescription fileDesc,
@RequestPart(value = "attachments", required = false) List<MultipartFile> attachments) {
多部分请求的某些部分可能包含诸如“内容id”、“内容位置”等标题。但是spring接口multipartfile并没有提供一个方法来获取我想要的任何头文件,只有我看到的getcontenttype。如何获取所有提供的标题?
重要的一点是,在请求中,我可以将multipart/mixed作为multipart/form数据的一部分。因此,消息的每个部分都有自己的头Map。如果我使用@requestheader,我可以看到请求的主要头,但是multipart的特定部分没有头。
3条答案
按热度按时间ddrv8njm1#
您可以使用以下命令获取所有请求头
@RequestHeader Map<String,String> headers
之后,您可以搜索要查找的标题。irtuqstp2#
你可以用
@RequestHeader
注解以从请求中检索所有标头,如下所示:或者,如果需要单个标头的值,则可以在中指定标头的名称
@RequestHeader
注解,如下所示:ruoxqz4g3#
可能还有另一种方法,但我知道的一种方法是在方法签名中请求multipartttpServletRequest。
如果需要的话,你可以要求其他的论点。
此对象允许您以更细粒度的方式访问多部分的详细信息。例如,您可以使用getmultipartheaders(字符串参数文件名)访问每个部件的标题。您还可以通过这种方式访问文件内容,因此通常不需要保留
@RequestPart
在方法签名内部。