fix FileController
This commit is contained in:
@@ -61,7 +61,7 @@ public class ServerFile implements Serializable {
|
||||
name = file.getName();
|
||||
absolutePath = file.getAbsolutePath().replaceAll("\\\\", "/");
|
||||
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();
|
||||
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;
|
||||
|
||||
import com.imyeyu.api.modules.common.entity.Setting;
|
||||
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.SystemFileSetting;
|
||||
import com.imyeyu.api.modules.system.bean.TransferFile;
|
||||
import com.imyeyu.api.modules.system.service.AsyncTaskService;
|
||||
import com.imyeyu.api.modules.system.service.FileService;
|
||||
@@ -47,7 +46,6 @@ import java.awt.image.BufferedImage;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.RandomAccessFile;
|
||||
import java.net.URI;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
@@ -67,7 +65,6 @@ import java.util.Map;
|
||||
@RequestMapping("/system/file")
|
||||
public class FileController implements TimiJava, OS.FileSystem {
|
||||
|
||||
private final TagService tagService;
|
||||
private final FileService service;
|
||||
private final SettingService settingService;
|
||||
private final AsyncTaskService asyncTaskService;
|
||||
@@ -143,7 +140,7 @@ public class FileController implements TimiJava, OS.FileSystem {
|
||||
public void read(HttpServletRequest req, HttpServletResponse resp) {
|
||||
try {
|
||||
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)) {
|
||||
resp.setStatus(HttpServletResponse.SC_NOT_FOUND);
|
||||
return;
|
||||
@@ -195,8 +192,7 @@ public class FileController implements TimiJava, OS.FileSystem {
|
||||
resp.setStatus(HttpServletResponse.SC_NOT_FOUND);
|
||||
return;
|
||||
}
|
||||
// path = settingService.getAsString(Setting.Module.System.FILE_BASE_PATH) + path;
|
||||
File file = new File(path);
|
||||
File file = new File(settingService.getSystem(SystemFileSetting.BASE_PATH).asString() + path);
|
||||
if (!file.exists()) {
|
||||
log.warn("preview a not exist file: {}", path);
|
||||
resp.setStatus(HttpServletResponse.SC_NOT_FOUND);
|
||||
@@ -409,8 +405,7 @@ public class FileController implements TimiJava, OS.FileSystem {
|
||||
public void download(HttpServletResponse resp) {
|
||||
try {
|
||||
String path = TimiSpring.cutURIStartAt("/system/file/download");
|
||||
path = "E:/IDEAProject/TimiServerAPI/data/file" + path;
|
||||
File file = new File(path);
|
||||
File file = new File(settingService.getSystem(SystemFileSetting.BASE_PATH).asString() + path);
|
||||
service.checkAccessPermission(file.getAbsolutePath());
|
||||
|
||||
String mimeType = new Tika().detect(file);
|
||||
|
||||
+2
-3
@@ -1,8 +1,8 @@
|
||||
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.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.service.AsyncTaskService;
|
||||
import com.imyeyu.api.modules.system.service.FileService;
|
||||
@@ -257,8 +257,7 @@ public class FileServiceImplement implements TimiJava, FileService {
|
||||
}
|
||||
|
||||
private String getPath(String path) {
|
||||
// String basePath = settingService.getSystem(Setting.Module.System.FILE_BASE_PATH).asString();
|
||||
String basePath = "E:\\IDEAProject\\TimiServerAPI\\data\\file";
|
||||
String basePath = settingService.getSystem(SystemFileSetting.BASE_PATH).asString();
|
||||
if (TimiJava.isEmpty(path)) {
|
||||
return basePath;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user