From 039e200d3f99d9e644cda0417e84af16b96103e2 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 25 Feb 2026 16:13:41 +0800
Subject: [PATCH] feat(fileUpload): 更新文件上传功能以改进文件命名和显示
---
src/main/java/cc/mrbird/febs/ai/controller/fileUpload/FileUploadController.java | 28 ++++++++++++++++++++++++----
1 files changed, 24 insertions(+), 4 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/ai/controller/fileUpload/FileUploadController.java b/src/main/java/cc/mrbird/febs/ai/controller/fileUpload/FileUploadController.java
index 115bcb7..c8203bf 100644
--- a/src/main/java/cc/mrbird/febs/ai/controller/fileUpload/FileUploadController.java
+++ b/src/main/java/cc/mrbird/febs/ai/controller/fileUpload/FileUploadController.java
@@ -84,7 +84,7 @@
}
// 生成唯一文件名
- String uniqueFileName = fileName+ "_" + UUID.randomUUID().toString() ;
+ String uniqueFileName =UUID.randomUUID().toString()+":"+ fileName;
Path targetFilePath = uploadPath.resolve(uniqueFileName);
// 构建公司专属分片目录
@@ -233,8 +233,14 @@
} else {
log.debug("收到完整文件请求,返回初始片段");
- // 没有Range头,返回初始片段(约30秒内容)
- long actualEnd = Math.min(MAX_INITIAL_SEGMENT, fileSize - 1);
+ // 没有Range头,返回文件大小的10分之一和15MB中较小的那个
+ long oneTenthSize = fileSize / 10;
+ // 计算10分之一和15MB的较小值
+ long maxInitialSize = Math.min(oneTenthSize, MAX_INITIAL_SEGMENT);
+ // 确保至少返回1字节,且不超过文件大小
+ long actualEnd = Math.min(Math.max(maxInitialSize, 1), fileSize - 1);
+ log.debug("返回初始片段: {} bytes (10分之一大小: {} bytes, 15MB限制: {} bytes, 文件总大小: {} bytes)",
+ actualEnd + 1, oneTenthSize, MAX_INITIAL_SEGMENT, fileSize);
// 设置响应状态和头部信息
response.setStatus(HttpStatus.PARTIAL_CONTENT.value()); // 使用206状态码,因为只返回部分内容
@@ -341,7 +347,14 @@
if (Files.isRegularFile(path)) {
try {
FileInfo fileInfo = new FileInfo();
- fileInfo.setFileName(path.getFileName().toString());
+ String totalName = path.getFileName().toString();
+ String[] s = totalName.split(":");
+ if (s.length > 1){
+ fileInfo.setFileName(s[1]);
+ }else{
+ fileInfo.setFileName(totalName);
+ }
+ fileInfo.setFileSysName(totalName);
fileInfo.setFileSize(Files.size(path));
fileInfo.setUploadTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(Files.getLastModifiedTime(path).toMillis())));
fileList.add(fileInfo);
@@ -391,8 +404,15 @@
*/
public static class FileInfo {
private String fileName;
+ private String fileSysName;
private long fileSize;
private String uploadTime;
+ public String getFileSysName() {
+ return fileSysName;
+ }
+ public void setFileSysName(String fileSysName) {
+ this.fileSysName = fileSysName;
+ }
public String getFileName() {
return fileName;
--
Gitblit v1.9.1