Spring Bootでアップロードとダウンロード機能を実装する方法

Spring Bootでは、MultipartFileインターフェイスを使用してファイルアップロード機能を実装し、ResponseEntityを使用してファイルダウンロード機能を実装できます。

ファイルアップロード機能の実装までの手順は下記の通りです。

  1. コントローラにてファイルアップロード処理を追加し、@RequestParamアノテーションでアップロードファイルを受け取る。
@PostMapping("/upload")
public String uploadFile(@RequestParam("file") MultipartFile file) {
    // 处理文件上传逻辑
    // ...
    return "上传成功";
}
  1. application.properties または application.yml 設定ファイルにファイルのアップロードに関する設定を追加します。
spring:
  servlet:
    multipart:
      max-file-size: 10MB
      max-request-size: 10MB
  1. フロントページに、enctype属性を multipart/form-data に設定したファイルアップロードフォームを追加する。
<form th:action="@{/upload}" method="post" enctype="multipart/form-data">
    <input type="file" name="file">
    <button type="submit">上传</button>
</form>

ファイルダウンロード機能の実装の手順は以下の通りです。

  1. コントローラーにファイルをダウンロードするメソッドを追加し、ファイル名のパラメーターを受け取るにはPathVariableアノテーションを使用します。
@GetMapping("/download/{filename}")
public ResponseEntity<Resource> downloadFile(@PathVariable String filename) {
    // 获取文件路径
    String filePath = "path/to/file/" + filename;
    // 创建文件资源对象
    Resource fileResource = new FileSystemResource(filePath);
    
    // 设置响应头
    HttpHeaders headers = new HttpHeaders();
    headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + filename);
    
    return ResponseEntity.ok()
            .headers(headers)
            .contentLength(fileResource.contentLength())
            .contentType(MediaType.APPLICATION_OCTET_STREAM)
            .body(fileResource);
}
  1. フロントページにダウンロードボタンを追加し、対応するダウンロードリンクを設定します。
<a th:href="@{/download/filename}" download>下载</a>

なお、filename はダウンロードするファイル名です。

以上はSpring Bootでファイルのアップロードとダウンロード機能を実装する基本的な手順です。具体的な実装は具体的なニーズによって異なる可能性があるので、必要に応じて調整できます。

bannerAds