mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 10:18:42 +08:00 
			
		
		
		
	删除文件 yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/FileController.java
This commit is contained in:
		| @@ -1,100 +0,0 @@ | |||||||
| package cn.iocoder.yudao.module.infra.controller.admin.file; |  | ||||||
|  |  | ||||||
| import cn.hutool.core.io.IoUtil; |  | ||||||
| import cn.hutool.core.util.StrUtil; |  | ||||||
| import cn.iocoder.yudao.framework.common.pojo.CommonResult; |  | ||||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; |  | ||||||
| import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; |  | ||||||
| import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; |  | ||||||
| import cn.iocoder.yudao.module.infra.controller.admin.file.vo.file.FilePageReqVO; |  | ||||||
| import cn.iocoder.yudao.module.infra.controller.admin.file.vo.file.FileRespVO; |  | ||||||
| import cn.iocoder.yudao.module.infra.controller.admin.file.vo.file.FileUploadReqVO; |  | ||||||
| import cn.iocoder.yudao.module.infra.convert.file.FileConvert; |  | ||||||
| import cn.iocoder.yudao.module.infra.dal.dataobject.file.FileDO; |  | ||||||
| import cn.iocoder.yudao.module.infra.service.file.FileService; |  | ||||||
| import io.swagger.annotations.Api; |  | ||||||
| import io.swagger.annotations.ApiImplicitParam; |  | ||||||
| import io.swagger.annotations.ApiImplicitParams; |  | ||||||
| import io.swagger.annotations.ApiOperation; |  | ||||||
| import lombok.extern.slf4j.Slf4j; |  | ||||||
| import org.springframework.http.HttpStatus; |  | ||||||
| import org.springframework.security.access.prepost.PreAuthorize; |  | ||||||
| import org.springframework.validation.annotation.Validated; |  | ||||||
| import org.springframework.web.bind.annotation.*; |  | ||||||
| import org.springframework.web.multipart.MultipartFile; |  | ||||||
|  |  | ||||||
| import javax.annotation.Resource; |  | ||||||
| import javax.annotation.security.PermitAll; |  | ||||||
| import javax.servlet.http.HttpServletRequest; |  | ||||||
| import javax.servlet.http.HttpServletResponse; |  | ||||||
| import javax.validation.Valid; |  | ||||||
|  |  | ||||||
| import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |  | ||||||
|  |  | ||||||
| @Api(tags = "管理后台 - 文件存储") |  | ||||||
| @RestController |  | ||||||
| @RequestMapping("/infra/file") |  | ||||||
| @Validated |  | ||||||
| @Slf4j |  | ||||||
| public class FileController { |  | ||||||
|  |  | ||||||
|     @Resource |  | ||||||
|     private FileService fileService; |  | ||||||
|  |  | ||||||
|     @PostMapping("/upload") |  | ||||||
|     @ApiOperation("上传文件") |  | ||||||
|     @OperateLog(logArgs = false) // 上传文件,没有记录操作日志的必要 |  | ||||||
|     public CommonResult<String> uploadFile(FileUploadReqVO uploadReqVO) throws Exception { |  | ||||||
|         MultipartFile file = uploadReqVO.getFile(); |  | ||||||
|         String path = uploadReqVO.getPath(); |  | ||||||
|         return success(fileService.createFile(file.getOriginalFilename(), path, IoUtil.readBytes(file.getInputStream()))); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     @DeleteMapping("/delete") |  | ||||||
|     @ApiOperation("删除文件") |  | ||||||
|     @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class) |  | ||||||
|     @PreAuthorize("@ss.hasPermission('infra:file:delete')") |  | ||||||
|     public CommonResult<Boolean> deleteFile(@RequestParam("id") Long id) throws Exception { |  | ||||||
|         fileService.deleteFile(id); |  | ||||||
|         return success(true); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     @GetMapping("/{configId}/get/**") |  | ||||||
|     @PermitAll |  | ||||||
|     @ApiOperation("下载文件") |  | ||||||
|     @ApiImplicitParams({ |  | ||||||
|             @ApiImplicitParam(name = "configId", value = "配置编号", required = true, dataTypeClass = Long.class), |  | ||||||
|             @ApiImplicitParam(name = "fileName", value = "文件实际名称", dataTypeClass = String.class) |  | ||||||
|     }) |  | ||||||
|     public void getFileContent(HttpServletRequest request, |  | ||||||
|                                HttpServletResponse response, |  | ||||||
|                                String fileName, |  | ||||||
|                                @PathVariable("configId") Long configId) throws Exception { |  | ||||||
|         // 获取请求的路径 |  | ||||||
|         String path = StrUtil.subAfter(request.getRequestURI(), "/get/", false); |  | ||||||
|         if (StrUtil.isEmpty(path)) { |  | ||||||
|             throw new IllegalArgumentException("结尾的 path 路径必须传递"); |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         // 读取内容 |  | ||||||
|         byte[] content = fileService.getFileContent(configId, path); |  | ||||||
|         if (content == null) { |  | ||||||
|             log.warn("[getFileContent][configId({}) path({}) 文件不存在]", configId, path); |  | ||||||
|             response.setStatus(HttpStatus.NOT_FOUND.value()); |  | ||||||
|             return; |  | ||||||
|         } |  | ||||||
|         if (StrUtil.isBlank(fileName)) { |  | ||||||
|             fileName = StrUtil.subAfter(path, "/", true); |  | ||||||
|         } |  | ||||||
|         ServletUtils.writeAttachment(response, fileName, content); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     @GetMapping("/page") |  | ||||||
|     @ApiOperation("获得文件分页") |  | ||||||
|     @PreAuthorize("@ss.hasPermission('infra:file:query')") |  | ||||||
|     public CommonResult<PageResult<FileRespVO>> getFilePage(@Valid FilePageReqVO pageVO) { |  | ||||||
|         PageResult<FileDO> pageResult = fileService.getFilePage(pageVO); |  | ||||||
|         return success(FileConvert.INSTANCE.convertPage(pageResult)); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
| } |  | ||||||
		Reference in New Issue
	
	Block a user
	 咱哥丶
					咱哥丶