• SpringMVC请求(下)-文件上传


    文章目录


    一、文件上传三要素

    在这里插入图片描述

    <form action="${pageContext.request.contextPath}/user/quick21" method="post" enctype="multipart/form-data">
        名称<input type="text" name="username"><br>
        文件<input type="file" name="upload"><br>
        <input type="submit" value="提交">
    </form>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    二、文件上传原理

    在这里插入图片描述

    三、单文件上传步骤

    在这里插入图片描述

    1.导入fileload和io坐标

    <dependency>
          <groupId>commons-fileupload</groupId>
          <artifactId>commons-fileupload</artifactId>
          <version>1.2.2</version>
        </dependency>
        <dependency>
          <groupId>commons-io</groupId>
          <artifactId>commons-io</artifactId>
          <version>2.11.0</version>
        </dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    2.配置文件上传解析器

     <!--配置文件上传解析器-->
        <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
            <property name="defaultEncoding" value="UTF-8"></property>
            <property name="maxInMemorySize" value="500000"></property>
        </bean>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3.编写文件上传代码

        @RequestMapping(value = "/quick21")
        @ResponseBody  //告诉SpringMVC框架不进行视图跳转,直接进行数据响应
        public void save21(String username, MultipartFile upload) throws IOException {
            System.out.println(username);
            /*System.out.println(upload);*/
            //获得上传文件名称
            String originalFilename = upload.getOriginalFilename();
            upload.transferTo(new File("F:\\upload\\"+originalFilename));
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    四、多文件上传

    1.方式一

    <form action="${pageContext.request.contextPath}/user/quick22" method="post" enctype="multipart/form-data">
        名称<input type="text" name="username"><br>
        文件<input type="file" name="upload"><br>
        文件<input type="file" name="upload1"><br>
        <input type="submit" value="提交">
    </form>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    @RequestMapping(value = "/quick22")
        @ResponseBody  //告诉SpringMVC框架不进行视图跳转,直接进行数据响应
        public void save22(String username, MultipartFile upload,MultipartFile upload1) throws IOException {
            System.out.println(username);
            /*System.out.println(upload);*/
            //获得上传文件名称
            String originalFilename = upload.getOriginalFilename();
            upload.transferTo(new File("F:\\upload\\"+originalFilename));
            String originalFilename1 = upload1.getOriginalFilename();
            upload.transferTo(new File("F:\\upload\\"+originalFilename1));
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    2.方式二(数组)

    <form action="${pageContext.request.contextPath}/user/quick23" method="post" enctype="multipart/form-data">
        名称<input type="text" name="username"><br>
        文件<input type="file" name="upload"><br>
        文件<input type="file" name="upload"><br>
        <input type="submit" value="提交">
    </form>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
     @RequestMapping(value = "/quick23")
        @ResponseBody  //告诉SpringMVC框架不进行视图跳转,直接进行数据响应
        public void save23(String username, MultipartFile[] upload) throws IOException {
            System.out.println(username);
            /*System.out.println(upload);*/
            //获得上传文件名称
            for (MultipartFile multipartFile : upload) {
                String originalFilename = multipartFile.getOriginalFilename();
                multipartFile.transferTo(new File("F:\\upload\\"+originalFilename));
    
            }
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    五、知识要点

    在这里插入图片描述

  • 相关阅读:
    Spring Cloud 微服务项目实战 -
    vim 入门
    写字楼招商难、收租慢、管理乱?用快鲸智慧楼宇系统快速解决
    C#命名空间 System.IO思维导图
    mysql-视图/存储过程/触发器
    一些损失函数的学习
    2022年十次最大的云中断
    springboot -sse -flux 服务器推送消息
    const 总结
    C语言学习:5、C语言程序的选择结构
  • 原文地址:https://blog.csdn.net/qq_43514330/article/details/125537631