使用Spring Boot實現文件上傳

一、Spring Boot文件上傳的介紹

在Web開發中,文件上傳功能是一個比較基礎且常見的功能,利用Spring Boot可以快速實現文件上傳,並且可以實現大小、格式等限制。在本文中,我們將詳細介紹如何使用Spring Boot實現文件上傳功能。

二、Spring Boot文件上傳的實現步驟

文件上傳分為兩個部分:前端頁面的實現和Spring Boot後台的實現。在前端頁面中需要添加文件上傳的輸入框和提交按鈕。在後台實現中,需要建立一個控制器用於接收上傳的文件。

1. 前端頁面的實現

前端頁面的實現包含兩個部分:文件上傳的輸入框和提交按鈕。

<form action="/file/upload" method="post" enctype="multipart/form-data">
  <input type="file" name="file" id="file">
  <input type="submit" value="提交">
</form>

在表單中,需要設置enctype為multipart/form-data,這樣才可以支持文件上傳。input標籤的type設置為file,這樣就可以選擇需要上傳的文件。

2. 後台實現

在Spring Boot項目中,需要建立一個Controller用於接收上傳的文件。在Controller中使用MultipartFile參數接收文件,同時使用@RequestParam註解可以設置文件的大小和格式等限制。

@RestController
public class FileUploadController {
    
  @PostMapping("/file/upload")
  public String fileUpload(@RequestParam("file") MultipartFile file) {
      if(file.isEmpty()) {
          return "上傳失敗,請選擇文件";
      }
      String fileName = file.getOriginalFilename();
      String filePath = "D:/upload/";
      File dest = new File(filePath + fileName);
      try {
          file.transferTo(dest);
          return "上傳成功";
      } catch (IOException e) {
          return "上傳失敗!";
      }
  }
}

在處理文件上傳時,首先需要判斷上傳的文件是否為空。如果文件為空,則返回上傳失敗。在接收到文件後,可以獲取文件名和文件路徑,並利用File類新建一個文件對象。在利用transferTo方法將文件從臨時位置轉移到指定位置。在transferTo方法執行成功後,就可以返回上傳成功的信息。

3. 文件大小和類型的限制

在上面的代碼中,我們並沒有對文件的大小和類型進行限制。下面是對文件大小和類型進行限制的代碼。

@PostMapping("/file/upload")
public String fileUpload(@RequestParam("file") MultipartFile file) {
    if(file.isEmpty()) {
      return "上傳失敗,請選擇文件";
    }
    String fileName = file.getOriginalFilename();
    String suffixName = fileName.substring(fileName.lastIndexOf("."));
    long size = file.getSize();
    if(size > 500*1024) {
      return "上傳失敗,文件大小不能超過500kb";
    }
    String[] allowedSuffixes = {".jpg", ".jpeg", ".png"};
    boolean allowedFlag = false;
    for(String suffix : allowedSuffixes) {
      if(suffixName.equalsIgnoreCase(suffix)) {
          allowedFlag = true;
          break;
      }
    }
    if(!allowedFlag) {
      return "上傳失敗,文件格式不正確";
    }
    String filePath = "D:/upload/";
    File dest = new File(filePath + fileName);
    try {
      file.transferTo(dest);
      return "上傳成功";
    } catch (IOException e) {
      return "上傳失敗!";
    }
}

以上代碼中,首先獲取文件名和文件後綴。在獲取到文件後綴後,可以通過判斷文件後綴是否在允許上傳的文件格式中來進行判斷。在判斷完文件格式後,獲取文件的大小,並判斷文件大小是否超出規定範圍。若文件大小或格式不符合要求,則返回上傳失敗信息。

三、小結

在本文中,我們詳細介紹了如何使用Spring Boot實現文件上傳功能。首先在前端頁面中添加文件上傳的輸入框和提交按鈕。在後台實現中,建立一個Controller用於接收上傳的文件,並可以對文件的大小和類型進行限制。

原創文章,作者:ZEIZD,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/332214.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
ZEIZD的頭像ZEIZD
上一篇 2025-01-21 17:30
下一篇 2025-01-21 17:30

相關推薦

發表回復

登錄後才能評論