1. 程式人生 > 其它 >SpringBoot 學習——檔案上傳

SpringBoot 學習——檔案上傳

技術標籤:學習javaSpringjavaspring bootspringspringmvc

文章目錄


前言

在學習了SpringMVC的檔案上傳方式後,如何使用SpringBoot來完成檔案的上傳?


一、操作步驟

1.環境搭建

1.1匯入SpringBoot的場景啟動器

pom.xml

	<!--匯入父專案依賴-->
    <parent>
        <groupId
>
org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.4.2</version> <relativePath/> </parent> <!--新增thymeleaf的場景--> <dependency> <groupId>org.springframework.boot</
groupId
>
<artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <!--新增web開發的場景--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</
artifactId
>
</dependency>

1.2 前端頁面

upload.html


<!DOCTYPE html>
<html lang="en" xmlns:th="http://www/thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<!--
	檔案上傳的前提:
	1. 表單的提交方式為post
	2. 編碼方式為多部分/格式資料(enctype=multipart/form-data)
-->
<form action="/upload" method="post" enctype="multipart/form-data">
    <input type="file" name="photo"/> 單檔案上傳<br>
    <!--此處 multiple實現多檔案上傳-->
    <input type="file" name="photos" multiple/> 多檔案上傳<br>
    <input type="submit" value="上傳">
</form>
</body>
</html>

實現效果:
在這裡插入圖片描述

2.編寫邏輯

2.1 編寫Controller

uploadController.java

@Controller
public class uploadController {

    @GetMapping("/")
    public String main(){
        //跳轉到upload.html頁面
        return "upload";
    }

    //實現檔案上傳
    @PostMapping("/upload")
    public String upload(@RequestPart("photo") MultipartFile photo, //@RequestPart+MultipartFile==>將檔案封裝到引數中去
                         @RequestPart("photos") MultipartFile[] photos) throws IOException {//多檔案上傳用MultipartFile[]陣列來封裝引數

        //再進行操作之前,isEmpty()判斷檔案是否為空
        if(!photo.isEmpty()){
            //MultipartFile檔案中transferTo(儲存路徑)方法將檔案寫到伺服器中
            photo.transferTo(new File("D:\\"+photo.getOriginalFilename()));
}
        if(photos.length!=0){
            //遍歷
                for (MultipartFile file : photos) {
                file.transferTo(new File("D:\\"+file.getOriginalFilename()));
                }
        }
                return "upload";
    }

}

2.2 上傳檔案的大小的限制

SpringBoot中一切都是預設配置,檔案上傳的大小等等也不例外。上傳的檔案預設最大為1MB。接下來介紹如何更改預設配置:

spring:
  servlet:
    multipart:
      max-file-size: 50MB   #單個檔案上傳最大為50M
      max-request-size: 100MB   #總的檔案上傳大小最大為100M
      

總結

[email protected](“引數名”)+MultipartFile類:實現檔案的封裝
2.MultipartFile中的transfer方法實現將檔案寫到伺服器上的功能


後續我會補充上SpringMVC方式的檔案上傳和下載,分析兩者的區別與優劣