我使用Spring Boot并希望使用Controller来接收多部分文件上传.发送文件时,我不断收到错误415不支持的内容类型响应,并且永远不会到达控制器
There was an unexpected error (type=Unsupported Media Type, status=415).
Content type 'multipart/form-data;boundary=----WebKitFormBoundary1KvzQ1rt2V1BBbb8' not supported
Run Code Online (Sandbox Code Playgroud)
我尝试使用form:action在html/jsp页面中发送,也在使用RestTemplate的独立客户端应用程序中发送.所有尝试都给出相同的结果
multipart/form-data;boundary=XXXXX not supported.
从多部分文档看来,必须将边界参数添加到分段上传,但这似乎与控制器接收不匹配 "multipart/form-data"
我的控制器方法设置如下
@RequestMapping(value = "/things", method = RequestMethod.POST, consumes = "multipart/form-data" ,
produces = { "application/json", "application/xml" })
public ResponseEntity<ThingRepresentation> submitThing(HttpServletRequest request,
@PathVariable("domain") String domainParam,
@RequestParam(value = "type") String thingTypeParam,
@RequestBody MultipartFile[] submissions) throws Exception
Run Code Online (Sandbox Code Playgroud)
使用Bean安装程序
@Bean
public MultipartConfigElement multipartConfigElement() {
return new MultipartConfigElement("");
}
@Bean
public MultipartResolver multipartResolver() {
org.springframework.web.multipart.commons.CommonsMultipartResolver multipartResolver = new org.springframework.web.multipart.commons.CommonsMultipartResolver();
multipartResolver.setMaxUploadSize(1000000);
return …Run Code Online (Sandbox Code Playgroud) 如何在Spring Boot中实现多个文件上传功能,每个文件都有自己的额外字段(例如comment,documentType)?
这个答案可能相关,但仅适用于单个文件: Spring boot controller - Upload Multipart and JSON to DTO
我有一个像我的表单(前端)一样的情况,我可以填写个人数据(姓名、地址、出生日期),然后我可以附加多个图像。
在我的春季启动控制器中:
@RequestMapping(value = "/addCustOrder", method = RequestMethod.POST, consumes = {"multipart/form-data"})
public String CustomerOrder(@ModelAttribute CustOrderRequest coReq, HttpServletRequest request) {
System.out.println("debug ************** ");
System.out.println("ReceiverName :: " + coReq.getReceiverName());
System.out.println("attachmentFile :: " + coReq.getFileAttachment().length);
}
Run Code Online (Sandbox Code Playgroud)
我的模型包装:
public class CustOrderRequest {
private String receiverName;
private String receiverPhone;
private String itemDescription;
private MultipartFile[] fileAttachment;
}
//setter & getter
Run Code Online (Sandbox Code Playgroud)
前端(React)代码:
const payload = JSON.stringify({
id: values.id,
receiverName: values.receiverName,
receiverPhone: values.receiverPhone,
itemDescription: values.itemDescription,
fileAttachment: values.fileAttachment
});
axios.post(urlApi, payload)
.then(r => {
// success request
});
Run Code Online (Sandbox Code Playgroud)
通过上面的例子,我总是遇到错误。例如:java.io.IOException:流已关闭且附件长度为零/附件大小为零(从 …
我有POST请求api调用,以从客户端(邮递员或Java客户端)接受json主体请求参数和多部分文件。
我想在单个请求中同时传递json数据和多部分文件。
我已经编写了如下代码。
@RequestMapping(value = "/sendData", method = RequestMethod.POST, consumes = "multipart/form-data")
public ResponseEntity<MailResponse> sendMail(@RequestPart MailRequestWrapper request) throws IOException
Run Code Online (Sandbox Code Playgroud)
但是,我无法使用邮递员休息客户端来完成它。
我在服务器端使用spring boot。
任何人都可以在这个问题上建议我。
提前致谢,
spring-boot ×4
java ×3
rest ×2
spring ×2
axios ×1
json ×1
multipart ×1
postman ×1
reactjs ×1
spring-mvc ×1