| | |
| | | package cn.iocoder.yudao.module.infra.controller.admin.file; |
| | | |
| | | import cn.hutool.core.io.FileUtil; |
| | | import cn.hutool.core.io.IoUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import cn.hutool.core.util.URLUtil; |
| | | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| | | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| | | import cn.iocoder.yudao.framework.common.util.http.HttpUtils; |
| | | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| | | import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore; |
| | | import cn.iocoder.yudao.module.infra.controller.admin.file.vo.file.*; |
| | |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import java.nio.charset.StandardCharsets; |
| | | import java.util.List; |
| | | |
| | | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |
| | |
| | | @GetMapping("/get") |
| | | @Operation(summary = "获得文件") |
| | | @Parameter(name = "id", description = "编号", required = true) |
| | | @PreAuthorize("@ss.hasPermission('infra:file:query')") |
| | | public CommonResult<FileRespVO> getFile(@RequestParam("id") Long id) { |
| | | return success(BeanUtils.toBean(fileService.getFile(id), FileRespVO.class)); |
| | | } |
| | |
| | | if (StrUtil.isEmpty(path)) { |
| | | throw new IllegalArgumentException("结尾的 path 路径必须传递"); |
| | | } |
| | | // 解码,解决中文路径的问题 |
| | | // 解码,解决中文、%、+ 等特殊字符路径的问题 |
| | | // https://gitee.com/zhijiantianya/ruoyi-vue-pro/pulls/807/ |
| | | // https://gitee.com/zhijiantianya/ruoyi-vue-pro/pulls/1432/ |
| | | path = URLUtil.decode(path, StandardCharsets.UTF_8, false); |
| | | path = HttpUtils.decodeUrlPath(path); |
| | | |
| | | // 读取内容 |
| | | byte[] content = fileService.getFileContent(configId, path); |
| | |
| | | response.setStatus(HttpStatus.NOT_FOUND.value()); |
| | | return; |
| | | } |
| | | writeAttachment(response, path, content); |
| | | FileDO file = fileService.getFileByConfigIdAndPath(configId, path); |
| | | String filename = file != null && StrUtil.isNotEmpty(file.getName()) ? file.getName() : FileUtil.getName(path); |
| | | writeAttachment(response, filename, content); |
| | | } |
| | | |
| | | @GetMapping("/page") |
| | | @Operation(summary = "获得文件分页") |
| | | @PreAuthorize("@ss.hasPermission('infra:file:query')") |
| | | public CommonResult<PageResult<FileRespVO>> getFilePage(@Valid FilePageReqVO pageVO) { |
| | | PageResult<FileDO> pageResult = fileService.getFilePage(pageVO); |
| | | return success(BeanUtils.toBean(pageResult, FileRespVO.class)); |