• 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

    五、知识要点

    在这里插入图片描述

  • 相关阅读:
    RPA的价值和优势有哪些?
    10 年国内算法大神经验总结的数据结构与算法详解终于学完
    ElasticSearch搭建集群
    selenium_定位输入框并输入值_id
    C++界面开发框架Qt v6.4——全新的Qt Quick 3D Physics功能
    CGAL AABB树
    525. 连续数组 (前缀和 + 哈希)
    C#:实现杨辉三角算法​(附完整源码)
    【工作技术栈】【源码解读】一次springboot注入bean失败问题的排查过程
    MyBatis 案例
  • 原文地址:https://blog.csdn.net/qq_43514330/article/details/125537631