• SpringMVC文件上传


    1、导入依赖

    1.  
    2.  <dependency>
    3.      <groupId>commons-iogroupId>
    4.      <artifactId>commons-ioartifactId>
    5.      <version>2.4version>
    6.  dependency>
    7.  <dependency>
    8.      <groupId>commons-fileuploadgroupId>
    9.      <artifactId>commons-fileuploadartifactId>
    10.      <version>1.4version>
    11.      <exclusions>
    12.          <exclusion>
    13.              <artifactId>commons-ioartifactId>
    14.              <groupId>commons-iogroupId>
    15.          exclusion>
    16.      exclusions>
    17.  dependency>
    18.  <dependency>
    19.      <groupId>commons-codecgroupId>
    20.      <artifactId>commons-codecartifactId>
    21.      <version>1.13version>
    22.  dependency>

    2、在spirngmvc.xml文件中配置

    1.  
    2.  <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    3.      
    4.      <property name="defaultEncoding" value="utf-8"/>
    5.      
    6.      <property name="maxUploadSize" value="10485760000"/>
    7.      
    8.      <property name="maxInMemorySize" value="40960"/>
    9.  bean>

    3、前端

    注意:文件上传的form表单必须加上enctype="multipart/form-data"

    1.  <form action="${request.contextPath}/brand/add" method="post" enctype="multipart/form-data">
    2.     Logo:<input type="file" name="logo">
    3.      <input type="submit" value="提交">
    4.  form>

    4、后端

    注意:上传文件的Controller类必须加上@MultipartConfig注解,并且文件上传的接口必须时Post请求。

    1.  import org.springframework.stereotype.Controller;
    2.  import org.springframework.web.bind.annotation.PostMapping;
    3.  import org.springframework.web.bind.annotation.RequestMapping;
    4.  import org.springframework.web.bind.annotation.RequestParam;
    5.  import org.springframework.web.multipart.MultipartFile;
    6.  ​
    7.  import javax.servlet.annotation.MultipartConfig;
    8.  import java.io.File;
    9.  import java.io.IOException;
    10.  ​
    11.  /**
    12.   * @author JngKang
    13.   * @date 2022-05-16 09:27
    14.   */
    15.  @Controller
    16.  @MultipartConfig
    17.  @RequestMapping("brand")
    18.  public class BrandController {
    19.      @PostMapping("add")
    20.      public void add(@RequestParam("logo") MultipartFile multipartFile) {
    21.          try {
    22.              multipartFile.transferTo(new File("d:/a.jpg"));
    23.         } catch (IOException e) {
    24.              throw new RuntimeException(e);
    25.         }
    26.     }
    27.  }

    后端优化

    1.  import com.xxx.constant.WegoConst;
    2.  import org.springframework.stereotype.Controller;
    3.  import org.springframework.web.bind.annotation.PostMapping;
    4.  import org.springframework.web.bind.annotation.RequestMapping;
    5.  import org.springframework.web.bind.annotation.RequestParam;
    6.  import org.springframework.web.multipart.MultipartFile;
    7.  ​
    8.  import javax.servlet.annotation.MultipartConfig;
    9.  import java.io.File;
    10.  import java.io.IOException;
    11.  import java.util.UUID;
    12.  ​
    13.  /**
    14.   * @author JngKang
    15.   * @date 2022-05-16 09:27
    16.   */
    17.  @Controller
    18.  @MultipartConfig
    19.  @RequestMapping("brand")
    20.  public class BrandController {
    21.      @PostMapping("add")
    22.      public void add(@RequestParam("logo") MultipartFile multipartFile) {
    23.          String fileName = multipartFile.getOriginalFilename();
    24.          String suffix = fileName.substring(fileName.lastIndexOf("."));
    25.          String filePath = WegoConst.FILEPATH + UUID.randomUUID() + suffix;
    26.          try {
    27.              multipartFile.transferTo(new File(filePath));
    28.         } catch (IOException e) {
    29.              throw new RuntimeException(e);
    30.         }
    31.     }
    32.  }

  • 相关阅读:
    白盒测试的各种方法
    【java】五道经典算法题
    阿里P8架构师首推Netty实战干货,实战篇+面试篇,将知识点一网打尽
    泛微e-office json_common.php SQL注入漏洞
    设计模式概述
    Nginx 服务优化与防盗链
    java的引用数据类型-附String字符串常量池简介(别再用new String了)
    C语言 新手村学习:石头剪刀布小游戏的代码设计和优化探讨
    几个易错的python小知识点
    【Unity3D】AudioSource组件
  • 原文地址:https://blog.csdn.net/JngKang/article/details/127611572