SpringBoot上传文件

在这里插入图片描述

package com.atguigu.admin.controller;

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;

@Controller
@Slf4j
public class FormController {

    //访问 form_layouts页面
    @GetMapping("/form_layouts")
    public String form_layouts(){
        return "form/form_layouts";
    }

    @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);//getSize()获取上传图像的大小,length查看photos数组的长度,查看上传了几个文件

       //上传头像(单个照片)
        if (!headerImg.isEmpty()){ //如果文件不为空,就上传
            //获取文件初始名
            String originalFilename = headerImg.getOriginalFilename();
            headerImg.transferTo(new File("C:\\JavaSoftware\\atguigu\\SpringBoot\\File\\headerImg\\" + originalFilename));
        }

        //上传一组照片
        for (MultipartFile multipartFile : photos){
            if (!multipartFile.isEmpty()){
                String originalFilename = multipartFile.getOriginalFilename();
                //文件夹后要加双 \\
                multipartFile.transferTo(new File("C:\\JavaSoftware\\atguigu\\SpringBoot\\File\\photos\\" + originalFilename));
            }
        }

        //上传成功返回主页
        return "main";

    }

}

application.properties自定义上传文件大小

spring.servlet.multipart.max-file-size=100MB
spring.servlet.multipart.max-request-size=1000MB

<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>

控制台日志输出

上传的信息:email=172885308@qq.com,username=durunwu,headerImg=1375215,photos=36
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值