美文网首页
springboot中单文件上传和多文件上传

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

作者: very_cute_girls | 来源:发表于2019-10-26 14:39 被阅读0次

    一.引入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";
        }
    

    相关文章

      网友评论

          本文标题:springboot中单文件上传和多文件上传

          本文链接:https://www.haomeiwen.com/subject/xvoyvctx.html