使用Spring MultipartFile仅保存文件名(基于注释)

时间:2013-11-01 11:31:26

标签: spring hibernate spring-mvc annotations

我有一个域类组织,它有一个名为logo的属性。徽标的类型是MultipartFile。但问题是我想将文件保存在WEB-INF /资源的目录中,只将原始文件名保存到数据库中。我的域类如下:

public class Organization {

    @Id
    @GeneratedValue
    private Integer id;
    @Column
    private MultipartFile logo;
    @Column
    private String title;

    //getters & setters

}

我的JSP表单如下:

<f:form method="post" commandName="organization" action="${ requestScope.requestURI }" enctype="multipart/form-data">
    <f:hidden path="id"/>

        <dt><f:label path="logo">Logo</f:label></dt>
        <dd><input type="file" name="logo" class="form-control input-sm"/></dd>

        <dt><f:label path="title">Title</f:label></dt>
        <dd><f:input path="title" class="form-control input-sm"/></dd>

        <dd>
            <f:button type="submit" name="submit" class="btn btn-success btn-sm">Submit</f:button>
            <f:button type="reset" class="btn btn-warning btn-sm">Reset</f:button>
        </dd>
    </dl>
</f:form>

在我的数据库中,我使用VARCHAR作为徽标列的类型。所以现在我想将文件上传为MultipartFile并将文件保存在WEB-INF目录中。但请记住,我只想将originalFileName保留到我的数据库徽标字段中。你能帮我展示控制器实现和其他过程吗?我使用基于spring注释的配置。所以我的配置文件如下:

public class WebAppConfig extends WebMvcConfigurerAdapter {
    /...
    @Bean
    public CommonsMultipartResolver getMultipartResolver() {
        CommonsMultipartResolver cmr = new CommonsMultipartResolver();
        cmr.setMaxUploadSize(1*1024*1024);
        return cmr;
    }
    //...
}

你能帮我详细一点吗?感谢

1 个答案:

答案 0 :(得分:0)

您可以点击此链接,该链接包含MultipartFile

的控制器代码