fix FileController
This commit is contained in:
@@ -61,7 +61,7 @@ public class ServerFile implements Serializable {
|
|||||||
name = file.getName();
|
name = file.getName();
|
||||||
absolutePath = file.getAbsolutePath().replaceAll("\\\\", "/");
|
absolutePath = file.getAbsolutePath().replaceAll("\\\\", "/");
|
||||||
SettingService settingService = TimiServerAPI.applicationContext.getBean(SettingService.class);
|
SettingService settingService = TimiServerAPI.applicationContext.getBean(SettingService.class);
|
||||||
absolutePath = absolutePath.substring("E:\\IDEAProject\\TimiServerAPI\\data\\file".length());
|
absolutePath = absolutePath.substring(new File(settingService.getSystem(SystemFileSetting.BASE_PATH).asString()).getAbsolutePath().length());
|
||||||
|
|
||||||
modifiedAt = file.lastModified();
|
modifiedAt = file.lastModified();
|
||||||
this.file = file.isFile();
|
this.file = file.isFile();
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
package com.imyeyu.api.modules.system.bean;
|
||||||
|
|
||||||
|
import com.imyeyu.api.bean.SettingEnum;
|
||||||
|
import com.imyeyu.api.modules.common.entity.Setting;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
///
|
||||||
|
///
|
||||||
|
/// @author 夜雨
|
||||||
|
/// @since 2026-09-08 17:08
|
||||||
|
@Getter
|
||||||
|
@AllArgsConstructor
|
||||||
|
public enum SystemFileSetting implements SettingEnum {
|
||||||
|
|
||||||
|
BASE_PATH("data/file", Setting.ValueType.STRING);
|
||||||
|
|
||||||
|
final String defaultValue;
|
||||||
|
|
||||||
|
final Setting.ValueType valueType;
|
||||||
|
}
|
||||||
@@ -1,9 +1,8 @@
|
|||||||
package com.imyeyu.api.modules.system.controller;
|
package com.imyeyu.api.modules.system.controller;
|
||||||
|
|
||||||
import com.imyeyu.api.modules.common.entity.Setting;
|
|
||||||
import com.imyeyu.api.modules.common.service.SettingService;
|
import com.imyeyu.api.modules.common.service.SettingService;
|
||||||
import com.imyeyu.api.modules.common.service.TagService;
|
|
||||||
import com.imyeyu.api.modules.system.bean.ServerFile;
|
import com.imyeyu.api.modules.system.bean.ServerFile;
|
||||||
|
import com.imyeyu.api.modules.system.bean.SystemFileSetting;
|
||||||
import com.imyeyu.api.modules.system.bean.TransferFile;
|
import com.imyeyu.api.modules.system.bean.TransferFile;
|
||||||
import com.imyeyu.api.modules.system.service.AsyncTaskService;
|
import com.imyeyu.api.modules.system.service.AsyncTaskService;
|
||||||
import com.imyeyu.api.modules.system.service.FileService;
|
import com.imyeyu.api.modules.system.service.FileService;
|
||||||
@@ -47,7 +46,6 @@ import java.awt.image.BufferedImage;
|
|||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.RandomAccessFile;
|
import java.io.RandomAccessFile;
|
||||||
import java.net.URI;
|
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
@@ -67,7 +65,6 @@ import java.util.Map;
|
|||||||
@RequestMapping("/system/file")
|
@RequestMapping("/system/file")
|
||||||
public class FileController implements TimiJava, OS.FileSystem {
|
public class FileController implements TimiJava, OS.FileSystem {
|
||||||
|
|
||||||
private final TagService tagService;
|
|
||||||
private final FileService service;
|
private final FileService service;
|
||||||
private final SettingService settingService;
|
private final SettingService settingService;
|
||||||
private final AsyncTaskService asyncTaskService;
|
private final AsyncTaskService asyncTaskService;
|
||||||
@@ -143,7 +140,7 @@ public class FileController implements TimiJava, OS.FileSystem {
|
|||||||
public void read(HttpServletRequest req, HttpServletResponse resp) {
|
public void read(HttpServletRequest req, HttpServletResponse resp) {
|
||||||
try {
|
try {
|
||||||
String path = req.getServletPath().substring("/system/file/read".length());
|
String path = req.getServletPath().substring("/system/file/read".length());
|
||||||
path = "/root/bin/data/mnt" + path;
|
path = settingService.getSystem(SystemFileSetting.BASE_PATH).asString() + path;
|
||||||
if (TimiJava.isEmpty(path)) {
|
if (TimiJava.isEmpty(path)) {
|
||||||
resp.setStatus(HttpServletResponse.SC_NOT_FOUND);
|
resp.setStatus(HttpServletResponse.SC_NOT_FOUND);
|
||||||
return;
|
return;
|
||||||
@@ -195,8 +192,7 @@ public class FileController implements TimiJava, OS.FileSystem {
|
|||||||
resp.setStatus(HttpServletResponse.SC_NOT_FOUND);
|
resp.setStatus(HttpServletResponse.SC_NOT_FOUND);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// path = settingService.getAsString(Setting.Module.System.FILE_BASE_PATH) + path;
|
File file = new File(settingService.getSystem(SystemFileSetting.BASE_PATH).asString() + path);
|
||||||
File file = new File(path);
|
|
||||||
if (!file.exists()) {
|
if (!file.exists()) {
|
||||||
log.warn("preview a not exist file: {}", path);
|
log.warn("preview a not exist file: {}", path);
|
||||||
resp.setStatus(HttpServletResponse.SC_NOT_FOUND);
|
resp.setStatus(HttpServletResponse.SC_NOT_FOUND);
|
||||||
@@ -409,8 +405,7 @@ public class FileController implements TimiJava, OS.FileSystem {
|
|||||||
public void download(HttpServletResponse resp) {
|
public void download(HttpServletResponse resp) {
|
||||||
try {
|
try {
|
||||||
String path = TimiSpring.cutURIStartAt("/system/file/download");
|
String path = TimiSpring.cutURIStartAt("/system/file/download");
|
||||||
path = "E:/IDEAProject/TimiServerAPI/data/file" + path;
|
File file = new File(settingService.getSystem(SystemFileSetting.BASE_PATH).asString() + path);
|
||||||
File file = new File(path);
|
|
||||||
service.checkAccessPermission(file.getAbsolutePath());
|
service.checkAccessPermission(file.getAbsolutePath());
|
||||||
|
|
||||||
String mimeType = new Tika().detect(file);
|
String mimeType = new Tika().detect(file);
|
||||||
|
|||||||
+2
-3
@@ -1,8 +1,8 @@
|
|||||||
package com.imyeyu.api.modules.system.service.implement;
|
package com.imyeyu.api.modules.system.service.implement;
|
||||||
|
|
||||||
import com.imyeyu.api.modules.common.entity.Setting;
|
|
||||||
import com.imyeyu.api.modules.common.service.SettingService;
|
import com.imyeyu.api.modules.common.service.SettingService;
|
||||||
import com.imyeyu.api.modules.system.bean.ServerFile;
|
import com.imyeyu.api.modules.system.bean.ServerFile;
|
||||||
|
import com.imyeyu.api.modules.system.bean.SystemFileSetting;
|
||||||
import com.imyeyu.api.modules.system.bean.TransferFile;
|
import com.imyeyu.api.modules.system.bean.TransferFile;
|
||||||
import com.imyeyu.api.modules.system.service.AsyncTaskService;
|
import com.imyeyu.api.modules.system.service.AsyncTaskService;
|
||||||
import com.imyeyu.api.modules.system.service.FileService;
|
import com.imyeyu.api.modules.system.service.FileService;
|
||||||
@@ -257,8 +257,7 @@ public class FileServiceImplement implements TimiJava, FileService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private String getPath(String path) {
|
private String getPath(String path) {
|
||||||
// String basePath = settingService.getSystem(Setting.Module.System.FILE_BASE_PATH).asString();
|
String basePath = settingService.getSystem(SystemFileSetting.BASE_PATH).asString();
|
||||||
String basePath = "E:\\IDEAProject\\TimiServerAPI\\data\\file";
|
|
||||||
if (TimiJava.isEmpty(path)) {
|
if (TimiJava.isEmpty(path)) {
|
||||||
return basePath;
|
return basePath;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user