91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring Boot實現文件上傳下載

發布時間:2024-10-04 19:05:00 來源:億速云 閱讀:83 作者:小樊 欄目:編程語言

在Spring Boot中,實現文件上傳和下載非常簡單。我們將分別介紹如何使用Spring Boot處理文件上傳和文件下載。

  1. 文件上傳

首先,我們需要在pom.xml文件中添加以下依賴:

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

接下來,創建一個簡單的HTML表單,用于文件上傳:

<!DOCTYPE html>
<html>
<head>
    <title>File Upload</title>
</head>
<body>
    <h1>Upload a file</h1>
    <form action="/upload" method="post" enctype="multipart/form-data">
        <input type="file" name="file" />
        <button type="submit">Upload</button>
    </form>
</body>
</html>

現在,我們將在Controller中處理文件上傳請求:

import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

@RestController
public class FileUploadController {

    private static final String UPLOAD_DIR = "uploads/";

    @PostMapping("/upload")
    public ResponseEntity<String> uploadFile(@RequestParam("file") MultipartFile file) {
        if (file.isEmpty()) {
            return new ResponseEntity<>("Please select a file to upload.", HttpStatus.BAD_REQUEST);
        }

        try {
            byte[] bytes = file.getBytes();
            Path path = Paths.get(UPLOAD_DIR + file.getOriginalFilename());
            Files.write(path, bytes);

            return new ResponseEntity<>("File uploaded successfully: " + file.getOriginalFilename(), HttpStatus.OK);
        } catch (IOException e) {
            e.printStackTrace();
            return new ResponseEntity<>("Failed to upload file: " + file.getOriginalFilename(), HttpStatus.INTERNAL_SERVER_ERROR);
        }
    }
}

這將創建一個名為"uploads"的文件夾,用于存儲上傳的文件。

  1. 文件下載

為了實現文件下載,我們將在Controller中添加一個新的方法:

import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

@RestController
public class FileDownloadController {

    private static final String UPLOAD_DIR = "uploads/";

    @GetMapping("/download/{filename}")
    public ResponseEntity<Resource> downloadFile(@PathVariable String filename) {
        Path path = Paths.get(UPLOAD_DIR + filename);
        Resource resource = null;

        try {
            byte[] bytes = Files.readAllBytes(path);
            resource = new ByteArrayResource(bytes);
        } catch (IOException e) {
            e.printStackTrace();
            return new ResponseEntity<>(HttpStatus.NOT_FOUND);
        }

        return ResponseEntity.ok()
                .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + resource.getFilename() + "\"")
                .body(resource);
    }
}

現在,您可以通過訪問/download/{filename}端點來下載文件,其中{filename}是要下載的文件名。

這就是在Spring Boot中實現文件上傳和下載的方法。請確保在application.properties或application.yml中設置正確的文件上傳目錄。例如,在application.properties中添加以下配置:

file.upload-dir=uploads/
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新化县| 蒙阴县| 桐庐县| 遂平县| 涪陵区| 河池市| 孟津县| 建平县| 汾阳市| 黄陵县| 平舆县| 张北县| 电白县| 闻喜县| 资兴市| 墨江| 富阳市| 丹棱县| 锡林郭勒盟| 城固县| 同心县| 海盐县| 烟台市| 无锡市| 都江堰市| 酒泉市| 晋宁县| 灵台县| 遵义市| 随州市| 扬州市| 江达县| 仪陇县| 繁昌县| 股票| 中江县| 育儿| 永顺县| 天水市| 湟中县| 交城县|