From bbdcd22a4a2ce248694d96c3979781dbea57a12e Mon Sep 17 00:00:00 2001 From: suyao Date: Tue, 25 Mar 2025 17:45:51 +0800 Subject: [PATCH] fix(FileStorage): update base64File method to return base64 string instead of Buffer --- src/main/services/FileStorage.ts | 5 +++-- src/preload/index.d.ts | 2 +- src/renderer/src/providers/GeminiProvider.ts | 3 +-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/services/FileStorage.ts b/src/main/services/FileStorage.ts index 2ecb34569..7d726c687 100644 --- a/src/main/services/FileStorage.ts +++ b/src/main/services/FileStorage.ts @@ -274,9 +274,10 @@ class FileStorage { public base64File = async ( _: Electron.IpcMainInvokeEvent, filePath: string - ): Promise<{ data: Buffer; mime: string }> => { + ): Promise<{ data: string; mime: string }> => { + const fileBuffer = await fs.promises.readFile(filePath) return { - data: await fs.promises.readFile(filePath), + data: fileBuffer.toString('base64'), mime: 'application/pdf' } } diff --git a/src/preload/index.d.ts b/src/preload/index.d.ts index aadd20990..bdcb33a76 100644 --- a/src/preload/index.d.ts +++ b/src/preload/index.d.ts @@ -74,7 +74,7 @@ declare global { ) => Promise saveImage: (name: string, data: string) => void base64Image: (fileId: string) => Promise<{ mime: string; base64: string; data: string }> - base64File: (filePath: string) => Promise<{ mime: string; data: Buffer }> + base64File: (filePath: string) => Promise<{ mime: string; data: string }> download: (url: string) => Promise copy: (fileId: string, destPath: string) => Promise binaryFile: (fileId: string) => Promise<{ data: Buffer; mime: string }> diff --git a/src/renderer/src/providers/GeminiProvider.ts b/src/renderer/src/providers/GeminiProvider.ts index 3943e768f..81351775b 100644 --- a/src/renderer/src/providers/GeminiProvider.ts +++ b/src/renderer/src/providers/GeminiProvider.ts @@ -88,7 +88,7 @@ export default class GeminiProvider extends BaseProvider { const { data, mimeType } = await fileToBase64(file.path) return { inlineData: { - data: data.toString('base64'), + data: data, mimeType } } as InlineDataPart @@ -150,7 +150,6 @@ export default class GeminiProvider extends BaseProvider { } for (const file of message.files || []) { - console.log('file', file) if (file.type === FileTypes.IMAGE) { const base64Data = await window.api.file.base64Image(file.id + file.ext) parts.push({