| | |
| | | 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; |
| | |
| | | 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") |