我有这个代码:
@PostMapping("foobar")
public ResponseEntity<SaveLogsResult> foobar(@RequestPart("file") MultipartFile log, @RequestPart("env") MultipartFile json){
return ResponseEntity.ok(fooService.saveFooBar(log, json, UUID.randomUUID().toString()));
}
两个应用程序将正式正确的数据发送到此endpoint,一个应用程序严重失败,并收到http状态400。
我设置了logging.level.org.springframework。web=DEBUG,可以看到(在其他行中):
Required request part 'env' is not present
Resolved [org.springframework.web.multipart.support.MissingServletRequestPartException: Required request part 'env' is not present]
Completed 400 BAD_REQUEST
为了进一步诊断这一点,我比较了一个工作(左)和非工作(右)请求。唯一的不同是misingfilename
:
据我所知,删除文件名的内容处理RFC完全有效:
后跟一个字符串,其中包含传输文件的原始名称。文件名始终是可选的,应用程序不得盲目使用:应去除路径信息,并应将其转换为服务器文件系统规则。该参数主要提供指示性信息。当与Content Disposition:attachment结合使用时,它将用作最终显示给用户的“另存为”对话框的默认文件名。
这是Spring内部的错误吗?我使用Spring Boot 2.6.2,不幸的是,我无法更改非工作组件进行快速测试,因为它是一个购买的组件,不经常收到错误修复。我认为我的问题与这里描述的不同,因为失败只发生在特定场景中。
看起来你必须提供文件名。看这个问题
这[文件名不存在的情况]可能会导致不一致,例如,您可以通过MultipartFile获得它,但不能通过MultipartFile的集合或数组获得它,并且可以提出相反的论点,即应该拒绝它。
如果它甚至没有文件名,为什么将其注入为MultipartFile很重要?您也可以将其注入为InputStream或注册的HttpMessageConverter支持的任何其他类型。
客户(ReactJS/Axios): Multer中间件: 下一个(): 异步(req,res)= 此处req.file未定义! } 当我尝试使用Axios传递图像时,req.file在控制器中显示为未定义。 我认为错误是在传递多部分/表单数据时,因为当我通过Insonmia Rest执行此操作时,它会工作!
字符串不能解析为类型
我正在尝试在 Java 应用程序中设置一个 Apache Camel 路由,其中使用者终结点是一个 restlet 组件,它将 HTTP 文件上传作为多部分表单数据的 POST 进行处理,然后创建者终结点将请求转发到也接受多部分表单数据的 rest 服务。我是骆驼的新手,不知道如何正确地连接它。以下是到目前为止我的路线。我是否需要对正文进行任何转换,还是会按原样转发多部分表单数据?有人可以为我提供
没有边界的多部分/表单数据请求是否有效?根据规范,当有超过1个部分时,使用边界将它们分开(并且该边界不应该是身体的一部分)。我有一个请求,其中有一个单一的主体作为原始内容或文件,在内容类型中,我们传递“多部分/表单数据”。这种要求实际上有效吗?
在使用ajax提交多部分/表单数据时,我遇到了一个问题。 HTML代码: jQuery和Ajax: 以及文件输入为空的请求: -----------------------------65942623427134内容-处置:表单-数据;名称="id_noticia" 336-----------------65942623427134内容配置:表单数据;name=“foto[]”;filename
我有以下问题。我生成。使用外部应用程序的GIF文件。对我来说,GIF看起来不错,我可以毫无问题地打开它们。然而,使用 要将图像添加到Tkinter标签,会出现以下错误: Tcl错误:无法识别图像文件“C:\Users\D8W\Python\hoang\combi ne\u model\u neu\test\u bauteile\SQTR-VO\prev\u F45\u SQTR.GIF”中的数据