亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

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
甘孜县| 喀什市| 钟山县| 砚山县| 新竹市| 祥云县| 宝丰县| 叙永县| 五河县| 左云县| 皋兰县| 思茅市| 静乐县| 汝南县| 突泉县| 西充县| 邯郸市| 慈溪市| 广东省| 江华| 大洼县| 河池市| 中山市| 库尔勒市| 安远县| 云梦县| 长寿区| 广宁县| 正安县| 宁津县| 泗水县| 桦甸市| 新巴尔虎右旗| 无锡市| 通州区| 天水市| 天等县| 建宁县| 晋州市| 罗江县| 保亭|