fix: 图片/文件读取改用 base64,修复 atob Latin1 错误
- 主进程新增 fs:readFileBase64 IPC,读 Buffer 直接返回 base64 - 图片读取从 atob 转换改为直接使用 readFileBase64 - .metona 备份导入同理修复 - 根因:fs:readFile 用 utf-8 编码读取二进制文件,UTF-8 多字节序列超出 Latin1 范围导致 atob 失败
This commit is contained in:
@@ -53,6 +53,15 @@ export function setupIPC(): void {
|
||||
}
|
||||
});
|
||||
|
||||
ipcMain.handle('fs:readFileBase64', async (_, filePath: string) => {
|
||||
try {
|
||||
const buf = await fs.promises.readFile(filePath);
|
||||
return { success: true, content: buf.toString('base64'), size: buf.length, name: path.basename(filePath) };
|
||||
} catch (err) {
|
||||
return { success: false, error: (err as Error).message };
|
||||
}
|
||||
});
|
||||
|
||||
ipcMain.handle('fs:writeFile', async (_, filePath: string, content: string, encoding?: string) => {
|
||||
try {
|
||||
await fs.promises.writeFile(filePath, content, (encoding as BufferEncoding) || 'utf-8');
|
||||
|
||||
Reference in New Issue
Block a user