无法将字符串转换为MultipartFile

时间:2018-06-30 08:06:53

标签: java spring-boot freemarker

请帮助我解决我的问题! 我有引导文件输入,包含文件:

$MESOS_HOME/bin/mesos-slave.sh \
    --no-systemd_enable_support \
    --work_dir=/tmp \
    --master=${externalip}:5050 \
    --hostname=$slavehost \
    --isolation="filesystem/linux,cgroups/devices,gpu/nvidia" \
    --nvidia_gpu_devices=${gpu_devices} \
    --resources="[{\"name\": \"gpus\",\"type\": \"SCALAR\",\"scalar\": {\"value\": ${gpu_cnt}}}]" \
    --executor_environment_variables="{\"LD_LIBRARY_PATH\": \"${LD_LIBRARY_PATH}\", \"LIBPROCESS_SSL_ENABLED\": \"${LIBPROCESS_SSL_ENABLED}\", \"LIBPROCESS_SSL_KEY_FILE\": \"${LIBPROCESS_SSL_KEY_FILE}\", \"LIBPROCESS_SSL_CERT_FILE\": \"${LIBPROCESS_SSL_CERT_FILE}\"}"

我也有一个用于fileInput的宏:

    <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>

这是我的ftl元素:

<#macro fileInputBind path required=false fileMask="">
    <@spring.bind path/>
<div class="form-group">
    <@label path required/>
    <#assign replacedPath = path?replace(".", "-") />
    <#assign fileInputId = "${replacedPath}" />
    <div class="col-md-12">
        <input id="${fileInputId}" name="${spring.status.expression}" type="file" class="form-control file-styled"
               accept="${fileMask}">
    </div>
</div>
</#macro>

然后在我的表单中使用变量来处理此字段:

<@form.fileInputBind "incidentRovdCreateForm.attachment"/>

但是,当执行@PostMapping时,这部分出现了错误:

private MultipartFile attachment;

错误: 无法将类型“ java.lang.String”的属性值转换为属性“附件”的必需类型“ org.springframework.web.multipart.MultipartFile”;嵌套异常是java.lang.IllegalStateException:无法将属性“附件”的类型“ java.lang.String”的值转换为所需的类型“ org.springframework.web.multipart.MultipartFile”:找不到匹配的编辑器或转换策略。 / p>

我可以遇到什么问题?

1 个答案:

答案 0 :(得分:0)

我遇到了与前端相同的 HTML + JavaScript 问题。如果不需要 bean 的 file 属性,以下可能对您有所帮助:

// js
var formData = new FormData(document.getElementById("yourFormId"));

//TestBean.java    
@Transient
private MultipartFile file;

此方法避免了“无法将字符串转换为 MultipartFile”错误。