如何使 Spring(或 Jetty)接受/解析正文部分缺少内容处置中的filename
属性的分段上传?
除了缺少filename
属性之外,多部分消息是正常的,它也曾经与旧版本的 Jetty/Spring 一起使用。
我需要设置什么才能使 Jetty/Spring 再次具有容错能力?
附言在这里,我发现了一个类似但不同的问题(缺少name
属性)。然而,虽然name
似乎是识别身体部位的重要属性,但您不一定需要原始客户端文件名: Spring POST multipart/form-data 请求空正文,getParts 始终为空
正如评论中已经提到的:
Spring (4.3.8.RELEASE) 无条件跳过没有文件名的多部分文件,即没有设置使其更容错。因此,唯一的解决方案是覆盖 Spring 的 StandardMultipartHttpServletRequest
类并修改相关方法:parseRequest
。
添加的代码行:
if (filename == null && "file".equalsIgnoreCase(part.getName()) && MediaType.APPLICATION_OCTET_STREAM.equalsIgnoreCase(part.getContentType())) {
filename = DEFAULT_FILENAME;
}
是的,多部分正文部分的名称不一定是"file",但这是我的代码在上传文件时必须使用的客户端应用程序的名称。