中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

SpringBoot怎么實現文件上傳和下載

小億
121
2024-04-09 16:36:43
欄目: 編程語言

在Spring Boot中實現文件上傳和下載可以通過以下步驟來實現:

  1. 文件上傳: 使用Spring Boot的MultipartFile類來處理文件上傳。首先在Controller中創建一個POST接口來處理文件上傳請求:
@PostMapping("/upload")
public ResponseEntity<Object> uploadFile(@RequestParam("file") MultipartFile file) {
    // 保存文件到本地或者存儲到數據庫
    // 返回成功或者失敗的消息
}
  1. 文件下載: 創建一個GET接口來處理文件下載請求,并在Controller中編寫如下代碼:
@GetMapping("/download/{fileName}")
public ResponseEntity<Resource> downloadFile(@PathVariable String fileName) {
    // 從本地或者數據庫中獲取文件
    Resource resource = fileStorageService.loadFileAsResource(fileName);

    // 設置響應頭
    return ResponseEntity.ok()
            .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + resource.getFilename() + "\"")
            .body(resource);
}

要實現文件上傳和下載,還需要創建一個文件存儲服務類(FileStorageService),并在該類中編寫文件保存和加載的邏輯。例如,可以使用以下方法保存上傳的文件到本地:

@Service
public class FileStorageService {

    @Value("${file.upload-dir}")
    private String uploadDir;

    public void storeFile(MultipartFile file) {
        Path filePath = Paths.get(uploadDir).resolve(file.getOriginalFilename());
        try {
            Files.copy(file.getInputStream(), filePath, StandardCopyOption.REPLACE_EXISTING);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public Resource loadFileAsResource(String fileName) {
        try {
            Path filePath = Paths.get(uploadDir).resolve(fileName).normalize();
            Resource resource = new UrlResource(filePath.toUri());
            if(resource.exists()) {
                return resource;
            } else {
                throw new FileNotFoundException("File not found " + fileName);
            }
        } catch (MalformedURLException | FileNotFoundException ex) {
            ex.printStackTrace();
        }
        return null;
    }
}

在上述示例中,file.upload-dir是配置文件中配置的文件上傳目錄,可以在application.properties文件中配置:

file.upload-dir=/path/to/upload/dir

這樣就可以在Spring Boot中實現文件上傳和下載功能。

0
龙川县| 永昌县| 平邑县| 三原县| 师宗县| 广宁县| 东光县| 桐梓县| 鹤壁市| 疏附县| 东源县| 读书| 顺昌县| 沙田区| 汝城县| 乌拉特后旗| 图木舒克市| 九龙坡区| 昂仁县| 辽中县| 象山县| 沛县| 砀山县| 毕节市| 邵阳市| 光泽县| 伊金霍洛旗| 台州市| 土默特右旗| 新巴尔虎右旗| 江都市| 开鲁县| 罗甸县| 诸城市| 密山市| 连南| 株洲市| 富阳市| 丹棱县| 东丰县| 平江县|