Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 9f6077b

Browse files
添加根据代码运行的操作系统自动创建文件上传根目录功能
1 parent dd24efe commit 9f6077b

File tree

3 files changed

+45
-3
lines changed

3 files changed

+45
-3
lines changed

‎src/main/java/com/ramostear/application/controller/FileController.java

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.ramostear.application.controller;
22

33
import com.ramostear.application.model.FileInfo;
4+
import com.ramostear.application.util.FileUtil;
45
import org.springframework.beans.factory.annotation.Value;
56
import org.springframework.core.io.InputStreamResource;
67
import org.springframework.http.HttpHeaders;
@@ -25,9 +26,16 @@
2526
@Controller
2627
public class FileController {
2728

29+
private static String fileUploadRootDir = null;
2830

29-
@Value ( "${file.upload.root.dir}" )
30-
String fileUploadRootDir;
31+
@Value ( "${file.upload.root.dir.windows}" )
32+
String fileUploadRootDirWindows;
33+
34+
@Value ( "${file.upload.root.dir.mac}" )
35+
String fileUploadRootDirMac;
36+
37+
@Value ( "${file.upload.root.dir.linux}" )
38+
String fileUploadRootDirLinux;
3139

3240
private static Map<String,FileInfo> fileRepository = new HashMap<>();
3341

@@ -39,6 +47,20 @@ public void initFileRepository(){
3947
fileRepository.put ( file1.getName (),file1 );
4048
fileRepository.put ( file2.getName (),file2 );
4149
fileRepository.put ( file3.getName (),file3 );
50+
51+
// 判断文件夹是否存在,不存在就创建
52+
String osName = System.getProperty("os.name");
53+
if (osName.startsWith("Mac OS")) {
54+
// 苹果
55+
fileUploadRootDir = fileUploadRootDirMac;
56+
} else if (osName.startsWith("Windows")) {
57+
// windows
58+
fileUploadRootDir = fileUploadRootDirWindows;
59+
} else {
60+
// unix or linux
61+
fileUploadRootDir = fileUploadRootDirLinux;
62+
}
63+
FileUtil.createDirectories(fileUploadRootDir);
4264
}
4365

4466
@GetMapping("/files")
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.ramostear.application.util;
2+
3+
import java.io.File;
4+
5+
public class FileUtil {
6+
public static void createDirectories(String pathname) {
7+
File directories = new File(pathname);
8+
if (directories.exists()) {
9+
System.out.println("文件上传根目录已存在");
10+
} else { // 如果目录不存在就创建目录
11+
if (directories.mkdirs()) {
12+
System.out.println("创建多级目录成功");
13+
} else {
14+
System.out.println("创建多级目录失败");
15+
}
16+
}
17+
}
18+
}

‎src/main/resources/application.properties

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,6 @@ spring.freemarker.suffix=.html
44
spring.freemarker.enabled=true
55
spring.freemarker.charset=UTF-8
66
spring.freemarker.template-loader-path=classpath:/templates/
7-
file.upload.root.dir = C:/work/upload/
7+
file.upload.root.dir.windows = C:/work/upload/
8+
file.upload.root.dir.mac = ~/upload/
9+
file.upload.root.dir.linux = ~/upload/

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /