下面是用springboot实现的一个简单文件上传例子
1.文件上传是使用@RequestPart注解,和MultipartFile类来接受,MultipartFile类中有很多属性供我们使用。话不多说先创建一个Controller

/**
 * @Author zxm
 * @Date 2022/01/07 10:24
 */
@Controller
@RequestMapping("/count")
public class ContextController {

    /*上传文件的接口*/
    @PostMapping("/uplode")
    @ResponseBody
    public String getUplode(@RequestPart("one") MultipartFile mf,
                            @RequestPart("any") MultipartFile[] mfs) throws IOException {

        System.out.println("单文件上传信息为:"+mf.getOriginalFilename());
        System.out.println("多文件个数:"+mfs.length);
        for (MultipartFile m:mfs){
            System.out.println("多文件信息:文件名称:"+m.getOriginalFilename()+",文件大小:"+m.getSize()/1000+"kb");
        }

        /*将文件上传到指定文件夹*/
        if (!mf.isEmpty()){
            String fileName=mf.getOriginalFilename();
            //文件上传
            mf.transferTo(new File("E:\\"+fileName));
        }

        if (mfs.length>0){
            for (MultipartFile m: mfs) {
                m.transferTo(new File("E:\\"+m.getOriginalFilename()));
            }
        }
        return "成功";
    }
}

2.然后创建一个前端代码测试,如果需要多文件的话,给input标签添加multiple属性就表示这是个多文件的input。然后在from里面加enctype=“multipart/form-data” 表示这个请求有多文件请求。

<!--
多文件请求:enctype="multipart/form-data"
多文件:multiple
-->
<form action="/count/uplode" method="post" enctype="multipart/form-data" >
    <input type="file" value="上传单个文件" name="one" ><p>
    <input type="file" value="上传多个文件" name="any"  multiple><p>
    <input type="submit" value="提交" >
</form>

在这里基本上就可以上传文件了,但是相信有很多同学在这会一直报错,这是因为上传的文件太大或者文件太多导致的,遇到这样的请款只需要到配置文件里面加入相应的配置即可。文件上传的源代码如下:
多文件下载源代码

可以看到要先配置文件上传只需要配置 spring.servlet.multipart 就行了,所有的配置参数都在MultipartProperties类里面。里面的参数有很多,这里就不一一介绍简介,主要介绍两个常用的参数。
文件下载参数

3.配置文件

spring:
  servlet:
    multipart:
      max-file-size: 10MB #单个文件最大大小
      max-request-size: 100MB #文件最多上传的大小

这样配置后就可以上传成功啦。咋们看一下结果
下载测试
可以看到我们已将把文件选好了,然后点击提交按钮,后台已将显示出来了,表示上传成功。
在这里插入图片描述

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐