springmvc之文件上传

时间:2022-07-23
本文章向大家介绍springmvc之文件上传,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1、springmvc为文件上传提供了直接的支持,这种支持是通过即插即用的MulitipartResolver实现的。spring用JakartaCommonsFileUpload技术实现了一个MultiartResovler实现类:CommonsMulitipartResovler。

2、springmvc上下文默认没有装配MultipartSovler,因此默认情况下不能处理文件的上传工作,如果想使用spring的文件上传功能,需先在上下文中配置MultipartResolver。

3、配置MultipartResolver需注意:

  • defaultEncoding必须和用户Jsp的pageEncoding属性一致,以便正确解析表单的内容。
  • 为了让CommonsMultipartResoler正确工作,必须将JakartaCommonsFileUpload及JakartaCommonio的包添加到类路径下。

首先是处理文件上传的方法:

    @RequestMapping("/testFileUpload")
    public String testFileUpload(@RequestParam("desc") String desc,
            @RequestParam("file") MultipartFile file) throws IOException {
        System.out.println(desc);
        System.out.println("文件原始名字:"+file.getOriginalFilename());
        System.out.println("输入流:"+file.getInputStream());
        return "success";
    }

前端文件上传表单:

    <form action="testFileUpload" 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>

启动服务器:

点击提交:

得到相关信息和文件输入流,有了文件输入流就好对文件进行保存实现上传操作了。