1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- package com.example.fms.controller;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.example.fms.common.model.dto.FMSDeleteFileDTO;
- import com.example.fms.common.utils.Response;
- import com.example.fms.domain.SystemFile;
- import com.example.fms.service.FileMangerService;
- import com.example.fms.service.SystemFileService;
- import io.swagger.v3.oas.annotations.Operation;
- import io.swagger.v3.oas.annotations.tags.Tag;
- import lombok.RequiredArgsConstructor;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.core.io.InputStreamResource;
- import org.springframework.http.HttpHeaders;
- import org.springframework.http.MediaType;
- import org.springframework.http.ResponseEntity;
- import org.springframework.web.bind.annotation.*;
- import org.springframework.web.multipart.MultipartFile;
- import java.io.ByteArrayInputStream;
- import java.util.List;
- /**
- * @Author xiexiang
- * @Date 2023/6/6
- */
- @Tag(name = "操作模块")
- @Slf4j
- @RestController
- @RequiredArgsConstructor
- @RequestMapping("/fileManager")
- public class FileMangerController {
- private final FileMangerService fileManagerService;
- private final SystemFileService systemFileService;
- @PostMapping("/uploadSystemFile")
- @Operation(summary = "上传文件")
- public String upload(@RequestBody List<MultipartFile> files, Integer sourceId) {
- List<Integer> insertIds = fileManagerService.add(files, sourceId);
- return Response.success(insertIds);
- }
- @PostMapping("/uploadSystemFile1")
- @Operation(summary = "上传文件")
- public String upload(MultipartFile file, Integer sourceId) {
- System.out.println(file +"------------"+sourceId);
- return Response.success();
- }
- @GetMapping("/downloadSystemFile")
- @Operation(summary = "取出文件")
- public ResponseEntity<InputStreamResource> download(Integer fileId) throws Exception {
- byte[] fileData = fileManagerService.download(fileId);
- SystemFile systemFile = systemFileService.getById(fileId);
- String fileName = systemFile.getFileName();
- return ResponseEntity.ok().contentLength(fileData.length)
- .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + fileName + "\"")
- .contentType(MediaType.parseMediaType("application/octet-stream"))
- .body(new InputStreamResource(new ByteArrayInputStream(fileData)));
- }
- @PostMapping("/getFileData")
- @Operation(summary = "获取文件信息")
- public List<SystemFile> getFileData(@RequestBody List<Integer> fileIds){
- LambdaQueryWrapper<SystemFile> queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.in(SystemFile::getId, fileIds);
- List<SystemFile> systemFiles = systemFileService.list(queryWrapper);
- return systemFiles;
- }
- @PostMapping("/deleteSystemFile")
- @Operation(summary = "删除文件")
- public String delete(@RequestBody FMSDeleteFileDTO fMSDeleteFileDTO){
- fileManagerService.delete(fMSDeleteFileDTO.getIds(), fMSDeleteFileDTO.getType());
- return Response.success("删除系统文件成功");
- }
- }
|