Commit ccc4cad1c8d6575f452d17e8bc28af306b62f8e5

Authored by 咱哥丶
Committed by Gitee
1 parent c04ad317

删除文件 yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/mo…

…dule/infra/controller/admin/file/FileController.java
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/FileController.java deleted
1 -package cn.iocoder.yudao.module.infra.controller.admin.file;  
2 -  
3 -import cn.hutool.core.io.IoUtil;  
4 -import cn.hutool.core.util.StrUtil;  
5 -import cn.iocoder.yudao.framework.common.pojo.CommonResult;  
6 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
7 -import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils;  
8 -import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;  
9 -import cn.iocoder.yudao.module.infra.controller.admin.file.vo.file.FilePageReqVO;  
10 -import cn.iocoder.yudao.module.infra.controller.admin.file.vo.file.FileRespVO;  
11 -import cn.iocoder.yudao.module.infra.controller.admin.file.vo.file.FileUploadReqVO;  
12 -import cn.iocoder.yudao.module.infra.convert.file.FileConvert;  
13 -import cn.iocoder.yudao.module.infra.dal.dataobject.file.FileDO;  
14 -import cn.iocoder.yudao.module.infra.service.file.FileService;  
15 -import io.swagger.annotations.Api;  
16 -import io.swagger.annotations.ApiImplicitParam;  
17 -import io.swagger.annotations.ApiImplicitParams;  
18 -import io.swagger.annotations.ApiOperation;  
19 -import lombok.extern.slf4j.Slf4j;  
20 -import org.springframework.http.HttpStatus;  
21 -import org.springframework.security.access.prepost.PreAuthorize;  
22 -import org.springframework.validation.annotation.Validated;  
23 -import org.springframework.web.bind.annotation.*;  
24 -import org.springframework.web.multipart.MultipartFile;  
25 -  
26 -import javax.annotation.Resource;  
27 -import javax.annotation.security.PermitAll;  
28 -import javax.servlet.http.HttpServletRequest;  
29 -import javax.servlet.http.HttpServletResponse;  
30 -import javax.validation.Valid;  
31 -  
32 -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;  
33 -  
34 -@Api(tags = "管理后台 - 文件存储")  
35 -@RestController  
36 -@RequestMapping("/infra/file")  
37 -@Validated  
38 -@Slf4j  
39 -public class FileController {  
40 -  
41 - @Resource  
42 - private FileService fileService;  
43 -  
44 - @PostMapping("/upload")  
45 - @ApiOperation("上传文件")  
46 - @OperateLog(logArgs = false) // 上传文件,没有记录操作日志的必要  
47 - public CommonResult<String> uploadFile(FileUploadReqVO uploadReqVO) throws Exception {  
48 - MultipartFile file = uploadReqVO.getFile();  
49 - String path = uploadReqVO.getPath();  
50 - return success(fileService.createFile(file.getOriginalFilename(), path, IoUtil.readBytes(file.getInputStream())));  
51 - }  
52 -  
53 - @DeleteMapping("/delete")  
54 - @ApiOperation("删除文件")  
55 - @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class)  
56 - @PreAuthorize("@ss.hasPermission('infra:file:delete')")  
57 - public CommonResult<Boolean> deleteFile(@RequestParam("id") Long id) throws Exception {  
58 - fileService.deleteFile(id);  
59 - return success(true);  
60 - }  
61 -  
62 - @GetMapping("/{configId}/get/**")  
63 - @PermitAll  
64 - @ApiOperation("下载文件")  
65 - @ApiImplicitParams({  
66 - @ApiImplicitParam(name = "configId", value = "配置编号", required = true, dataTypeClass = Long.class),  
67 - @ApiImplicitParam(name = "fileName", value = "文件实际名称", dataTypeClass = String.class)  
68 - })  
69 - public void getFileContent(HttpServletRequest request,  
70 - HttpServletResponse response,  
71 - String fileName,  
72 - @PathVariable("configId") Long configId) throws Exception {  
73 - // 获取请求的路径  
74 - String path = StrUtil.subAfter(request.getRequestURI(), "/get/", false);  
75 - if (StrUtil.isEmpty(path)) {  
76 - throw new IllegalArgumentException("结尾的 path 路径必须传递");  
77 - }  
78 -  
79 - // 读取内容  
80 - byte[] content = fileService.getFileContent(configId, path);  
81 - if (content == null) {  
82 - log.warn("[getFileContent][configId({}) path({}) 文件不存在]", configId, path);  
83 - response.setStatus(HttpStatus.NOT_FOUND.value());  
84 - return;  
85 - }  
86 - if (StrUtil.isBlank(fileName)) {  
87 - fileName = StrUtil.subAfter(path, "/", true);  
88 - }  
89 - ServletUtils.writeAttachment(response, fileName, content);  
90 - }  
91 -  
92 - @GetMapping("/page")  
93 - @ApiOperation("获得文件分页")  
94 - @PreAuthorize("@ss.hasPermission('infra:file:query')")  
95 - public CommonResult<PageResult<FileRespVO>> getFilePage(@Valid FilePageReqVO pageVO) {  
96 - PageResult<FileDO> pageResult = fileService.getFilePage(pageVO);  
97 - return success(FileConvert.INSTANCE.convertPage(pageResult));  
98 - }  
99 -  
100 -}