From adceadc16c9b1c3ee25201a78f62234d20cd7af7 Mon Sep 17 00:00:00 2001 From: hailin Date: Tue, 27 May 2025 23:00:01 +0800 Subject: [PATCH] . --- chatdesk-ui/db/files.ts | 47 ++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/chatdesk-ui/db/files.ts b/chatdesk-ui/db/files.ts index e61bea1..dfd2d53 100644 --- a/chatdesk-ui/db/files.ts +++ b/chatdesk-ui/db/files.ts @@ -91,31 +91,18 @@ export const createFile = async ( workspace_id: string, embeddingsProvider: "openai" | "local" | "bge-m3" ) => { - // let validFilename = fileRecord.name.replace(/[^a-z0-9.]/gi, "_").toLowerCase() - // const extension = file.name.split(".").pop() - // const extensionIndex = validFilename.lastIndexOf(".") - // const baseName = validFilename.substring(0, (extensionIndex < 0) ? undefined : extensionIndex) - // const maxBaseNameLength = 100 - (extension?.length || 0) - 1 - // if (baseName.length > maxBaseNameLength) { - // fileRecord.name = baseName.substring(0, maxBaseNameLength) + "." + extension - // } else { - // fileRecord.name = baseName + "." + extension - // } - // 保留原始文件名用于数据库插入 - const originalFileName = file.name - fileRecord.name = originalFileName // ✅ 用原始文件名插入数据库 - - // 为上传路径等其他用途生成格式化文件名 - let validFilename = originalFileName.replace(/[^a-z0-9.]/gi, "_").toLowerCase() - const extension = originalFileName.split(".").pop() + //let validFilename = fileRecord.name.replace(/[^a-z0-9.]/gi, "_").toLowerCase() + let validFilename = fileRecord.name.replace(/[<>:"/\\|?*%#\s]/g, "_") + const extension = file.name.split(".").pop() const extensionIndex = validFilename.lastIndexOf(".") - const baseName = validFilename.substring(0, extensionIndex < 0 ? undefined : extensionIndex) + const baseName = validFilename.substring(0, (extensionIndex < 0) ? undefined : extensionIndex) const maxBaseNameLength = 100 - (extension?.length || 0) - 1 - const adjustedName = - baseName.length > maxBaseNameLength - ? baseName.substring(0, maxBaseNameLength) + "." + extension - : baseName + "." + extension + if (baseName.length > maxBaseNameLength) { + fileRecord.name = baseName.substring(0, maxBaseNameLength) + "." + extension + } else { + fileRecord.name = baseName + "." + extension + } const { data: createdFile, error } = await supabase .from("files") @@ -134,8 +121,7 @@ export const createFile = async ( }) const filePath = await uploadFile(file, { - // name: createdFile.name, - name: adjustedName, + name: createdFile.name, user_id: createdFile.user_id, file_id: createdFile.name }) @@ -178,6 +164,19 @@ export const createDocXFile = async ( workspace_id: string, embeddingsProvider: "openai" | "local" | "bge-m3" ) => { + + let validFilename = fileRecord.name.replace(/[<>:"/\\|?*%#\s]/g, "_") + const extension = file.name.split(".").pop() + const extensionIndex = validFilename.lastIndexOf(".") + const baseName = validFilename.substring(0, (extensionIndex < 0) ? undefined : extensionIndex) + const maxBaseNameLength = 100 - (extension?.length || 0) - 1 + if (baseName.length > maxBaseNameLength) { + fileRecord.name = baseName.substring(0, maxBaseNameLength) + "." + extension + } else { + fileRecord.name = baseName + "." + extension + } + + const { data: createdFile, error } = await supabase .from("files") .insert([fileRecord])