支持文件上传时可增加追加自定义路径 如aaa/ ,aaa/bbb/
下载文件时可以重新命名文件真实名
This commit is contained in:
parent
7879632cf5
commit
c04ad317cf
@ -14,6 +14,7 @@ import cn.iocoder.yudao.module.infra.dal.dataobject.file.FileDO;
|
|||||||
import cn.iocoder.yudao.module.infra.service.file.FileService;
|
import cn.iocoder.yudao.module.infra.service.file.FileService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
|
import io.swagger.annotations.ApiImplicitParams;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
@ -61,9 +62,13 @@ public class FileController {
|
|||||||
@GetMapping("/{configId}/get/**")
|
@GetMapping("/{configId}/get/**")
|
||||||
@PermitAll
|
@PermitAll
|
||||||
@ApiOperation("下载文件")
|
@ApiOperation("下载文件")
|
||||||
@ApiImplicitParam(name = "configId", value = "配置编号", required = true, dataTypeClass = Long.class)
|
@ApiImplicitParams({
|
||||||
|
@ApiImplicitParam(name = "configId", value = "配置编号", required = true, dataTypeClass = Long.class),
|
||||||
|
@ApiImplicitParam(name = "fileName", value = "文件实际名称", dataTypeClass = String.class)
|
||||||
|
})
|
||||||
public void getFileContent(HttpServletRequest request,
|
public void getFileContent(HttpServletRequest request,
|
||||||
HttpServletResponse response,
|
HttpServletResponse response,
|
||||||
|
String fileName,
|
||||||
@PathVariable("configId") Long configId) throws Exception {
|
@PathVariable("configId") Long configId) throws Exception {
|
||||||
// 获取请求的路径
|
// 获取请求的路径
|
||||||
String path = StrUtil.subAfter(request.getRequestURI(), "/get/", false);
|
String path = StrUtil.subAfter(request.getRequestURI(), "/get/", false);
|
||||||
@ -78,7 +83,10 @@ public class FileController {
|
|||||||
response.setStatus(HttpStatus.NOT_FOUND.value());
|
response.setStatus(HttpStatus.NOT_FOUND.value());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
ServletUtils.writeAttachment(response, path, content);
|
if (StrUtil.isBlank(fileName)) {
|
||||||
|
fileName = StrUtil.subAfter(path, "/", true);
|
||||||
|
}
|
||||||
|
ServletUtils.writeAttachment(response, fileName, content);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/page")
|
@GetMapping("/page")
|
||||||
|
@ -39,11 +39,9 @@ public class FileServiceImpl implements FileService {
|
|||||||
@Override
|
@Override
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
public String createFile(String name, String path, byte[] content) {
|
public String createFile(String name, String path, byte[] content) {
|
||||||
// 计算默认的 path 名
|
// 计算默认的 path 名,path可增加自定义路径如 aaa/,aaa/bbb/
|
||||||
String type = FileTypeUtils.getMineType(content, name);
|
String type = FileTypeUtils.getMineType(content, name);
|
||||||
if (StrUtil.isEmpty(path)) {
|
path = StrUtil.isEmpty(path) ? FileUtils.generatePath(content, name) : path + FileUtils.generatePath(content, name);
|
||||||
path = FileUtils.generatePath(content, name);
|
|
||||||
}
|
|
||||||
// 如果 name 为空,则使用 path 填充
|
// 如果 name 为空,则使用 path 填充
|
||||||
if (StrUtil.isEmpty(name)) {
|
if (StrUtil.isEmpty(name)) {
|
||||||
name = path;
|
name = path;
|
||||||
|
Loading…
Reference in New Issue
Block a user