FileMangerController.java 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package com.example.fms.controller;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.example.fms.common.model.dto.FMSDeleteFileDTO;
  4. import com.example.fms.common.utils.Response;
  5. import com.example.fms.domain.SystemFile;
  6. import com.example.fms.service.FileMangerService;
  7. import com.example.fms.service.SystemFileService;
  8. import io.swagger.v3.oas.annotations.Operation;
  9. import io.swagger.v3.oas.annotations.tags.Tag;
  10. import lombok.RequiredArgsConstructor;
  11. import lombok.extern.slf4j.Slf4j;
  12. import org.springframework.core.io.InputStreamResource;
  13. import org.springframework.http.HttpHeaders;
  14. import org.springframework.http.MediaType;
  15. import org.springframework.http.ResponseEntity;
  16. import org.springframework.web.bind.annotation.*;
  17. import org.springframework.web.multipart.MultipartFile;
  18. import java.io.ByteArrayInputStream;
  19. import java.util.List;
  20. /**
  21. * @Author xiexiang
  22. * @Date 2023/6/6
  23. */
  24. @Tag(name = "操作模块")
  25. @Slf4j
  26. @RestController
  27. @RequiredArgsConstructor
  28. @RequestMapping("/fileManager")
  29. public class FileMangerController {
  30. private final FileMangerService fileManagerService;
  31. private final SystemFileService systemFileService;
  32. @PostMapping("/uploadSystemFile")
  33. @Operation(summary = "上传文件")
  34. public String upload(@RequestBody List<MultipartFile> files, Integer sourceId) {
  35. List<Integer> insertIds = fileManagerService.add(files, sourceId);
  36. return Response.success(insertIds);
  37. }
  38. @PostMapping("/uploadSystemFile1")
  39. @Operation(summary = "上传文件")
  40. public String upload(MultipartFile file, Integer sourceId) {
  41. System.out.println(file +"------------"+sourceId);
  42. return Response.success();
  43. }
  44. @GetMapping("/downloadSystemFile")
  45. @Operation(summary = "取出文件")
  46. public ResponseEntity<InputStreamResource> download(Integer fileId) throws Exception {
  47. byte[] fileData = fileManagerService.download(fileId);
  48. SystemFile systemFile = systemFileService.getById(fileId);
  49. String fileName = systemFile.getFileName();
  50. return ResponseEntity.ok().contentLength(fileData.length)
  51. .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + fileName + "\"")
  52. .contentType(MediaType.parseMediaType("application/octet-stream"))
  53. .body(new InputStreamResource(new ByteArrayInputStream(fileData)));
  54. }
  55. @PostMapping("/getFileData")
  56. @Operation(summary = "获取文件信息")
  57. public List<SystemFile> getFileData(@RequestBody List<Integer> fileIds){
  58. LambdaQueryWrapper<SystemFile> queryWrapper = new LambdaQueryWrapper<>();
  59. queryWrapper.in(SystemFile::getId, fileIds);
  60. List<SystemFile> systemFiles = systemFileService.list(queryWrapper);
  61. return systemFiles;
  62. }
  63. @PostMapping("/deleteSystemFile")
  64. @Operation(summary = "删除文件")
  65. public String delete(@RequestBody FMSDeleteFileDTO fMSDeleteFileDTO){
  66. fileManagerService.delete(fMSDeleteFileDTO.getIds(), fMSDeleteFileDTO.getType());
  67. return Response.success("删除系统文件成功");
  68. }
  69. }