• 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

    五、知识要点

    在这里插入图片描述

  • 相关阅读:
    gateway整合sentinel限流
    分享公司企业官网展示小程序开发制作功能介绍
    跟着 GPT-4 从0到1学习 Golang 并发机制(二)
    一文让你彻底搞懂AQS(通俗易懂的AQS)
    消息队列实现进程之间通信方式
    java读取csv文件或者java读取字符串,找出引号内容,采用正则表达式书写
    初识docker
    sscanf(“hello, world“, “%*s%s“, buf) -- “%*s%s“
    git远程覆盖本地分支的方法
    JavaCV - 图像暗通道去雾
  • 原文地址:https://blog.csdn.net/qq_43514330/article/details/125537631