Java 无法将字符串转换为多部分文件
请帮我解决我的问题! 我有引导文件输入,包括以下文件:Java 无法将字符串转换为多部分文件,java,spring-boot,freemarker,Java,Spring Boot,Freemarker,请帮我解决我的问题! 我有引导文件输入,包括以下文件: <link href="/assets/css/fileinput/fileinput.css" rel="stylesheet" type="text/css"> <link href="/assets/css/fileinput/fileinput-rtl.css" rel="stylesheet" type="text/css"> <script type="text/javascript" sr
<link href="/assets/css/fileinput/fileinput.css" rel="stylesheet" type="text/css">
<link href="/assets/css/fileinput/fileinput-rtl.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="/assets/js/fileinput/fileinput.js"></script>
<script type="text/javascript" src="/assets/js/plugins/fileinput/piexif.js"></script>
<script type="text/javascript" src="/assets/js/plugins/fileinput/sortable.js"></script>
<script type="text/javascript" src="/assets/js/plugins/fileinput/purify.js"></script>
但是当@PostMapping执行时,我在这一部分中遇到了一个错误:
if (bindingResult.hasErrors())
return new ModelAndView("incident-rovd/create")
.addObject("typeIncident1", incidentTypeLevel1Repository.findAll())
.addObject("typeIncident2", form.getIncidentTypeLevel1() == null ? Collections.emptyList() : incidentTypeLevel2Repository.findAllByParent(form.getIncidentTypeLevel1()))
.addObject("typeIncident3", form.getIncidentTypeLevel2() == null ? Collections.emptyList() : incidentTypeLevel3Repository.findAllByParent(form.getIncidentTypeLevel2()))
.addObject("incidentRovdCreateForm", form);
错误:
无法将类型为“java.lang.String”的属性值转换为属性“attachment”所需的类型“org.springframework.web.multipart.MultipartFile”;嵌套异常为java.lang.IllegalStateException:无法将类型为“java.lang.String”的值转换为属性“附件”所需的类型“org.springframework.web.multipart.MultipartFile”:找不到匹配的编辑器或转换策略
我会遇到什么问题?我遇到了与前端相同的HTML+JavaScript问题。如果不需要bean的file属性,以下内容可能会帮助您:
// js
var formData = new FormData(document.getElementById("yourFormId"));
//TestBean.java
@Transient
private MultipartFile file;
此方法避免了“无法将字符串转换为多部分文件”错误。标记中缺少enctype=“multipart/form data”。我尝试添加此标记。也发现了这些主题,但没有帮助,因此提出了新问题)
private MultipartFile attachment;
if (bindingResult.hasErrors())
return new ModelAndView("incident-rovd/create")
.addObject("typeIncident1", incidentTypeLevel1Repository.findAll())
.addObject("typeIncident2", form.getIncidentTypeLevel1() == null ? Collections.emptyList() : incidentTypeLevel2Repository.findAllByParent(form.getIncidentTypeLevel1()))
.addObject("typeIncident3", form.getIncidentTypeLevel2() == null ? Collections.emptyList() : incidentTypeLevel3Repository.findAllByParent(form.getIncidentTypeLevel2()))
.addObject("incidentRovdCreateForm", form);
// js
var formData = new FormData(document.getElementById("yourFormId"));
//TestBean.java
@Transient
private MultipartFile file;