zoukankan      html  css  js  c++  java
  • Springboot多文件上传

    springBoot自身加载了MultipartServletResolver解析器,无须引入commons-io.jar , commons-fileupload.jar俩个jar包,而Spring需要。因此可以直接使用:@EnableAutoConfiguration(exclude={MultipartAutoConfiguration.class})

    通过MultipartFile来处理文件上传

    @PostMapping("from")
    @ResponseBody
    public String handleFormUpload(MultipartFile file) throws IOException {

    if(!file.isEmpty()) {

    String originalFilename = file.getOriginalFilename();
    InputStream inputStream = file.getInputStream();

    //处理上传内容
    return "success";
    }
    return "failure";
    }
    MultipartFile提供了以下方法来获取上传文件的信息:

    getOriginalFilename,获取上传的文件名字;
    getBytes,获取上传文件内容,转为字节数组;
    getInputStream,获取一个InputStream;
    isEmpty,文件上传内容为空,或者根本就没有文件上传;
    getSize,文件上传的大小。
    transferTo(File dest),保存文件到目标文件系统;
    同时上传多个文件,则使用MultipartFile数组类来接受多个文件上传:

    @PostMapping("from")
    @ResponseBody
    public String handleFormUpload(MultipartFile[] files) throws IOException {

    return "failure";
    }
    可以通过配置application.properties对SpringBoot上传的文件进行限定默认为如下配置:

    spring.servlet.multipart.enabled=true
    spring.servlet.multipart.file-size-threshold=0
    spring.servlet.multipart.location=
    spring.servlet.multipart.max-file-size=1MB
    spring.servlet.multipart.max-request-size=10MB
    spring.servlet.multipart.resolve-lazily=false
    enabled默认为true,既允许附件上传。
    file-size-threshold限定了当上传文件超过一定长度时,就先写到临时文件里。有助于上传文件不占用过多的内存,单位是MB或KB,默认0,既不限定阈值。
    location指的是临时文件的存放目录,如果不设定,则web服务器提供一个临时目录。
    max-file-size属性指定了单个文件的最大长度,默认1MB,max-request-size属性说明单次HTTP请求上传的最大长度,默认10MB.
    resolve-lazily表示当文件和参数被访问的时候再被解析成文件。

  • 相关阅读:
    idea使用配置lombok插件
    微服务框架搭建总结点(一):Springboot整合log4j2日志
    git使用笔记:git commit后,如何撤销commit
    SQL Server中char,varchar,nchar, nvarchar的区别
    SQL插入语句插入自增的主键后,如何获取这个新增的主键值
    Linq分组后,再对分组后的每组进行内部排序,获取每组中的第一条记录
    Flutter 笔记
    gch
    JVM内存观察
    mybatis for 循环 中oracle in 条件后 多余1000条处理
  • 原文地址:https://www.cnblogs.com/luoning/p/11217061.html
Copyright © 2011-2022 走看看