• SpringBoot之文件上传(单文件与多文件上传的使用)



    前言

    SpringBoot的单文件、多文件上传。


    文件上传

    • 页面代码/static/form/form_layouts.html
    <form role="form" th:action="@{/upload}" method="post" enctype="multipart/form-data">
        <div class="form-group">
            <label for="exampleInputEmail1">邮箱label>
            <input type="email" name="email" class="form-control" id="exampleInputEmail1" placeholder="Enter email">
        div>
        
        <div class="form-group">
            <label for="exampleInputPassword1">名字label>
            <input type="text" name="username" class="form-control" id="exampleInputPassword1" placeholder="Password">
        div>
        
        <div class="form-group">
            <label for="exampleInputFile">头像label>
            <input type="file" name="headerImg" id="exampleInputFile">
        div>
        
        <div class="form-group">
            <label for="exampleInputFile">生活照label>
            <input type="file" name="photos" multiple>
        div>
        
        <div class="checkbox">
            <label>
                <input type="checkbox"> Check me out
            label>
        div>
        <button type="submit" class="btn btn-primary">提交button>
    form>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 控制层代码
    	@Slf4j
    	@Controller
        @GetMapping("/main")
        public  String mainPage(){
            return "main.html";
    
        @PostMapping("/upload")
        public String upload(@RequestParam("email") String email,
                             @RequestParam("username") String username,
                             @RequestPart("headerImg") MultipartFile headerImg,
                             @RequestPart("photos") MultipartFile[] photos) throws IOException {
    
            log.info("上传的信息:email={},username={},headerImg={},photos={}",
                     email,username,headerImg.getSize(),photos.length);
    
            if(!headerImg.isEmpty()){
                //保存到文件服务器,OSS服务器
                String originalFilename = headerImg.getOriginalFilename();
                headerImg.transferTo(new File("H:\\dragon\\"+originalFilename));
            }
    
            if(photos.length > 0){
                for (MultipartFile photo : photos) {
                    if(!photo.isEmpty()){
                        String originalFilename = photo.getOriginalFilename();
                        photo.transferTo(new File("H:\\dragon\\"+originalFilename));
                    }
                }
            }
    
    
            return "main";
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    文件上传相关的配置类:

    • org.springframework.boot.autoconfigure.web.servlet.MultipartAutoConfiguration
    • org.springframework.boot.autoconfigure.web.servlet.MultipartProperties

    文件大小相关配置项:

    spring.servlet.multipart.max-file-size=10MB
    spring.servlet.multipart.max-request-size=100MB
    
    • 1
    • 2

    总结

    以上就是SpringBoot文件上传讲解。

  • 相关阅读:
    Redis概述和安装
    Focal Loss讲解
    淘宝/天猫获得淘宝商品详情API(含测试示例)
    分享超高清多机位现场直播间搭建方案
    使用融云 CallPlus SDK,一小时实现一款 1V1 视频应用
    使用 Playground 创作第一个游戏
    布隆过滤器(Bloom Filter)
    【音视频】Linux | FFmpeg源码搭建
    Webmin远程命令执行漏洞复现报告
    FTP文件传输服务器原理
  • 原文地址:https://blog.csdn.net/weixin_62951900/article/details/133324614