Skip to content

Commit 3809191

Browse files
author
pedro
committed
feat:上传文件新增子目录
1 parent 440ce9d commit 3809191

4 files changed

Lines changed: 24 additions & 8 deletions

File tree

src/main/java/io/github/talelin/merak/common/configuration/WebConfiguration.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ public class WebConfiguration implements WebMvcConfigurer {
4242
@Value("${lin.cms.file.store-dir:assets/}")
4343
private String dir;
4444

45+
@Value("${lin.cms.file.serve-path:assets/**}")
46+
private String servePath;
47+
4548
/**
4649
* 跨域
4750
* 注意: 跨域问题涉及安全性问题,这里提供的是最方便简单的配置,任何host和任何方法都可跨域
@@ -83,8 +86,7 @@ private String getDirServePath() {
8386
// assets/
8487
// /usr/local/assets/
8588
// assets
86-
String s = FileUtil.mainName(dir);
87-
return s + "/**";
89+
return servePath;
8890
}
8991

9092
/**

src/main/java/io/github/talelin/merak/extension/file/LocalUploader.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,12 @@
55

66
import javax.annotation.PostConstruct;
77
import java.io.BufferedOutputStream;
8+
import java.io.File;
89
import java.io.FileOutputStream;
10+
import java.nio.file.Path;
11+
import java.nio.file.Paths;
12+
import java.text.SimpleDateFormat;
13+
import java.util.Date;
914

1015
/**
1116
* 文件上传服务默认实现,上传到本地
@@ -45,9 +50,17 @@ protected FileProperties getFileProperties() {
4550
return fileProperties;
4651
}
4752

53+
@SuppressWarnings("ResultOfMethodCallIgnored")
4854
@Override
4955
protected String getStorePath(String newFilename) {
50-
return newFilename;
56+
Date now = new Date();
57+
String format = new SimpleDateFormat("yyyy/MM/dd").format(now);
58+
Path path = Paths.get(fileProperties.getStoreDir(), format).toAbsolutePath();
59+
java.io.File file = new File(path.toString());
60+
if (!file.exists()) {
61+
file.mkdirs();
62+
}
63+
return Paths.get(format, newFilename).toString();
5164
}
5265

5366
@Override

src/main/java/io/github/talelin/merak/extension/file/config.properties

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,7 @@ lin.cms.file.include=.jpg,.png,.jpeg
1313
lin.cms.file.domain=http://localhost:5000/
1414
# \u672C\u5730\u6587\u4EF6\u4FDD\u5B58\u4F4D\u7F6E
1515
lin.cms.file.store-dir=assets/
16+
# \u670D\u52A1\u5668\u6587\u4EF6\u8DEF\u5F84
17+
lin.cms.file.serve-path=assets/**
1618
# \u5B9E\u73B0
1719
lin.cms.file.uploader=local

src/main/java/io/github/talelin/merak/service/impl/FileServiceImpl.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package io.github.talelin.merak.service.impl;
22

33
import cn.hutool.core.bean.BeanUtil;
4-
import cn.hutool.core.io.FileUtil;
54
import io.github.talelin.merak.bo.FileBO;
65
import io.github.talelin.merak.extension.file.FileConstant;
76
import io.github.talelin.merak.extension.file.Uploader;
@@ -31,8 +30,8 @@ public class FileServiceImpl extends ServiceImpl<FileMapper, FileDO> implements
3130
@Value("${lin.cms.file.domain}")
3231
private String domain;
3332

34-
@Value("${lin.cms.file.store-dir:assets/}")
35-
private String dir;
33+
@Value("${lin.cms.file.serve-path:assets/**}")
34+
private String servePath;
3635

3736
/**
3837
* 为什么不做批量插入
@@ -69,8 +68,8 @@ private FileBO transformDoToBo(FileDO file, String key) {
6968
FileBO bo = new FileBO();
7069
BeanUtil.copyProperties(file, bo);
7170
if (file.getType().equals(FileConstant.LOCAL)) {
72-
String s = FileUtil.mainName(dir);
73-
bo.setUrl(domain + s + "/" + file.getName());
71+
String s = servePath.split("/")[0];
72+
bo.setUrl(domain + s + "/" + file.getPath());
7473
} else {
7574
bo.setUrl(file.getPath());
7675
}

0 commit comments

Comments
 (0)