如何限制上传到Spring MVC3控制器的文件类型

2022-09-02 21:47:15

我正在使用Spring MVC3来处理我的Web应用程序的文件上传。现在,我可以使用 xml 上下文文件中定义的以下配置来限制要上传的文件大小:

<beans:bean id="multipartResolver"
    class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <beans:property name="maxUploadSize" value="200000"/> 
</beans:bean>

我已经在网上搜索了如何限制文件类型,但无济于事。我发现的大多数文章只教如何限制文件大小,而不是文件类型。提前感谢您的帮助。


答案 1

尝试在控制器的请求处理程序方法中执行检查/路由:

@RequestMapping("/save")
public String saveSkill(@RequestParam(value = "file", required = false) MultipartFile file) {   
        if(!file.getContentType().equalsIgnoreCase("text/html")){
            return "normalProcessing";
        }else{
            return "redirect: /some/page";
        }
}

答案 2

您可以按文件类型限制文件上传,可以扩展类。并添加方法以检查文件内容类型或使用文件类型。org.springframework.web.multipart.commons.CommonsMultipartResolverMultipartFile

提供文件类型,您想要在配置中限制的文件类型,例如 -

 <beans:bean id="multipartResolver"
    class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <beans:property name="maxUploadSize" value="200000"/> 
    <beans:property name="restrictFileTypes" value="html,pdf,..."/> 
</beans:bean>

推荐