SpringMVC中文件上传功能

SpringMVC中文件上传功能

1、SpringMVC的话,只需要在SpringMVC的配置文件中,编写一个配置,配置文件上传解析器(MultipartResolver)

    <!--  文件上传的话,配置文件上传解析器 id必须是multipartResolver,看源码得来的  -->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!--    #{}这个是Spring的表达式语言,表示最大上传20m的文件    -->
        <property name="maxUploadSize" value="#{1024*1024*20}"></property>
        <!--    这个表示将默认的字符编码设置为UTF-8    -->
        <property name="defaultEncoding" value="UTF-8"></property>

    </bean>

2、在处理器方法上写一个@RequestParam(“headerimg”) MultipartFile file ,封装了当前文件的信息

单个文件上传:

    /**
     *  @RequestParam("headerimg") MultipartFile file  ,封装了当前文件的信息
     * @param username
     * @param model
     * @param file
     * @return
     */
    @RequestMapping(value = "/upload")
    public String upload(@RequestParam(value = "username",required = false) String username, Model model                                                                                        ,
    @RequestParam("headerimg") MultipartFile file  ) {
        System.out.println("上传的文件信息:");
        System.out.println("文件项的名字" + file.getName());
        System.out.println("文件的名字" + file.getOriginalFilename());

        //文件保存
            File file1 = new File("D:\\fileupload\\"+file.getOriginalFilename());
        try {
            file.transferTo(file1);
            model.addAttribute("msg", "<h1>文件上传成功了!</h1>");
        } catch (IOException e) {
            model.addAttribute("msg", "<h1>文件上传失败了!</h1>"+e.getMessage());
        }


        return "forward:/fileupload.jsp";
    }

多个文件上传

    /**
     * 测试多个文件上传
     * @param username
     * @param model
     * @param file
     * @return
     */
    @RequestMapping(value = "/uploadfiles")
    public String uploads(@RequestParam(value = "username",required = false) String username, Model model                                                                                        ,
                         @RequestParam("headerimg") MultipartFile[] file  ) {
        System.out.println("上传的文件信息:");
        for (MultipartFile multipartFile: file){
            if (!multipartFile.isEmpty()){
                //文件不为空,进行保存
                try {
                    multipartFile.transferTo(new File("D:\\fileupload\\"+multipartFile.getOriginalFilename()));
                    model.addAttribute("mag", "<h1>多个文件上传成功了!</h1>");
                } catch (IOException e) {
                    model.addAttribute("mag", "<h1>多个文件上传失败了!</h1>"+e.getMessage());
                }
            }
        }


        return "forward:/fileupload.jsp";
    }

前端相关的代码

<%--    单个文件上传   --%>
<h2>单文件上传</h2>
<form action="${ctp}/upload" method="post" enctype="multipart/form-data">
    用户头像:<input type="file" name="headerimg"><br>
    用户名:<input type="text" name="username"><br>
    <input type="submit">
</form><br>
${msg}


<%--多文件上传--%>
<h2>多个文件上传</h2>
<form action="${ctp}/uploadfiles" method="post" enctype="multipart/form-data">
    用户头像:<input type="file" name="headerimg"><br>
    用户头像:<input type="file" name="headerimg"><br>
    用户头像:<input type="file" name="headerimg"><br>
    用户头像:<input type="file" name="headerimg"><br>
    用户头像:<input type="file" name="headerimg"><br>
    用户名:<input type="text" name="username"><br>
    <input type="submit">
</form><br>
${mag}


  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值