springboot中单文件上传和多文件上传

2019-10-26  本文已影响0人  very_cute_girls

一.引入web依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

二.在application.properties设置文件上传大小的设置

# 上传文件总的最大值
spring.servlet.multipart.max-request-size=20MB
# 单个文件的最大值
spring.servlet.multipart.max-file-size=10MB

三.单文件上传

1.前端代码

<form action="/uploading" method="post" enctype="multipart/form-data">
        <p>
            选择文件:<input type="file" name="file">
        </p>
        <p>
            <input type="submit" value="上传">
        </p>
</form>

注意: method="post" enctype="multipart/form-data"

2.Controller代码实现

private String name=null;

    /**
     * 单文件上传
     * @param file
     * @return
     */
    @PostMapping("/uploading")
    public String HandleFormUpload(MultipartFile file){
        //判断是否为空
        if(!file.isEmpty()){
            //获取文件名称,主要是获取文件的"扩展名"
            name=file.getOriginalFilename();
            System.out.println("name:"+name);
            //随机生成不重复的名称+文件扩展名
            UUID uuid = UUID.randomUUID();
            System.out.println("name:"+uuid+name);
            //确定最终保存的名称
            String pathFile=uuid+name;
            
            File file1 = new File("G://file/"+pathFile);
            try{
                //保存文件
                file.transferTo(file1);
            }catch (Exception e){
                System.out.println(e);
            }
            System.out.println("上传文件的名为:"+pathFile);
        }else{
            System.out.println("上传内容为空");
        }
        return "uploadfiles";
    }

四.多文件上传

1.前端代码 ( 多文件上传对比单文件上传多了几个文件框)

    <form action="/uploadFiles" method="post" enctype="multipart/form-data">
        <p>
            选择文件:<input type="file" name="file">
        </p>
        <p>
            选择文件:<input type="file" name="file">
        </p>
        <p>
            选择文件:<input type="file" name="file">
        </p>
        <p>
            选择文件:<input type="file" name="file">
        </p>
        <p>
            <input type="submit" value="上传">
        </p>
    </form>

2.Controller代码实现

 //MultipartFile[] 因为接受的不只一个,所以这里用数组接收
    @PostMapping("uploadFiles")
    public String HandleFormUploads(MultipartFile[] file){

        for (int i = 0; i < file.length; ++i) {
                if(!file[i].isEmpty()){
                    try {
                        name=file[i].getOriginalFilename();
                        UUID uuid = UUID.randomUUID();
                        System.out.println("name:"+uuid+name);
                        String pathFile=uuid+name;
                        File file1 = new File("G://file/"+pathFile);
                        file[i].transferTo(file1);
                    }catch (Exception e){
                        System.out.println(e);
                    }
                }else{
                    System.out.println("为空");
                }
        }
        //返回视图
        return "uploadfiles";
    }
上一篇下一篇

猜你喜欢

热点阅读