Jelajahi Sumber

增加下载文件功能
// 保存文本文件
const fileData = {
filename: 'example.txt',
content: '这是文件内容,可以是文本或Base64编码的数据'
};

// 调用保存方法
window.electronAPI.saveFile(fileData)
.then(result => {
if (result.success) {
console.log('文件保存成功:', result.path);
} else {
console.error('文件保存失败:', result.error);
}
});

PUGE 5 bulan lalu
induk
melakukan
06fea47df7
4 mengubah file dengan 37 tambahan dan 14 penghapusan
  1. 2 1
      .gitignore
  2. 23 0
      main.js
  3. 11 13
      preLoadFile.js
  4. 1 0
      preload.js

+ 2 - 1
.gitignore

@@ -1,2 +1,3 @@
 node_modules
-dist
+dist
+download

+ 23 - 0
main.js

@@ -450,6 +450,29 @@ ipcMain.on("readConfig", (event, message) => {
   }
 })
 
+ipcMain.handle("saveFile", async (event, message) => {
+  try {
+    // 确保download目录存在
+    const downloadDir = path.join(__dirname, 'download');
+    if (!fs.existsSync(downloadDir)) {
+      fs.mkdirSync(downloadDir, { recursive: true });
+      console.log('创建download目录:', downloadDir);
+    }
+    
+    // 构建完整的文件路径
+    const filePath = path.join(downloadDir, message.filename);
+    
+    // 保存文件内容
+    fs.writeFileSync(filePath, message.content);
+    
+    console.log('文件保存成功:', filePath);
+    return { success: true, path: filePath };
+  } catch (error) {
+    console.error('保存文件失败:', error);
+    return { success: false, error: error.message };
+  }
+});
+
 
 ipcMain.on("saveConfig", (event, message) => {
   fs.writeFileSync('./config.json', JSON.stringify(message))

File diff ditekan karena terlalu besar
+ 11 - 13
preLoadFile.js


+ 1 - 0
preload.js

@@ -25,6 +25,7 @@ contextBridge.exposeInMainWorld('electronAPI', {
   readdir: (msg) => ipcRenderer.send('readdir', msg),
   download: (msg) => ipcRenderer.send('download', msg),
   broadcast: (msg) => ipcRenderer.send('broadcast-message', msg),
+  saveFile: (msg) => ipcRenderer.invoke('saveFile', msg),
   onBroadcast: (callback) => ipcRenderer.on('message-broadcast', (event, data) => callback(data))
 });
 

Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini