美文网首页
Spring MVC文件上传

Spring MVC文件上传

作者: BlueSkyBlue | 来源:发表于2020-02-13 18:37 被阅读0次

    Spring MVC为文件上传提供了直接支持,这种支持是通过即插即用的MultipartResolver实现的。Spring用Jakarta Commons FileUpload技术实现了一个MultipartResolver实现类-CommonsMultipartResolver。

    Spring MVC默认上下文没有装配MultipartResolver,因此默认情况下不能处理文件的上传工作,如果想使用Spring的文件上传功能,需要现在上下文配置MultipartResolver。

    配置MultipartResolver
    defaultEncoding必须和用户JSP的pageEncoding属性一致,以便正确的解析表单的内容。

    为了让CommonsMultipartResolver正确工作,必须将Jakarta Commons FileUpload以及Jakarta Commons io的类包添加到类路径下。

    编写一个简单的文件上传程序

    1. 首先需要引入jar包commons-fileupload。这个jar依赖于commons-io,因此也需要引入commons-io。


    2. 之后在SpringMVC配置文件中进行配置

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

    <property>中配置的是上传文件的最大大小。此处设为1024000

    1. 编写jsp文件
    <form action="testUploadFile" method="post" enctype="multipart/form-data">
       File: <input type="file" name="file"/>
       <br>
       Desc: <input type="text" name="desc"/>
       <br>
       <input type="submit" value="Submit"/>
    </form>
    
    1. 之后编写后台的逻辑
    @RequestMapping("testUploadFile")
    public String testUploadFile(@RequestParam("desc") String desc, 
            @RequestParam("file") MultipartFile file) throws IOException{
        System.out.println("Desc: " + desc);
        System.out.println("File name: " + file.getOriginalFilename());
        System.out.println("File Inputstream: " + file.getInputStream());
        return "success";
    }
    
    1. 控制台输出结果:


    相关文章

      网友评论

          本文标题:Spring MVC文件上传

          本文链接:https://www.haomeiwen.com/subject/mnylfhtx.html