lsc 2 months ago
parent
commit
d77cc4ca46
1 changed files with 50 additions and 1 deletions
  1. 50 1
      pbl.js

+ 50 - 1
pbl.js

@@ -8,7 +8,7 @@ const querystring = require("querystring");
 var mysql = require("./mysql");
 var mysql = require("./mysql");
 // const _mysqlLabor = ["123.58.32.151", "pbl"]; //edu數據庫信息
 // const _mysqlLabor = ["123.58.32.151", "pbl"]; //edu數據庫信息
 // const _mysqluser = ["123.58.32.151", "cocorobouser"]; //用户数据库信息
 // const _mysqluser = ["123.58.32.151", "cocorobouser"]; //用户数据库信息
-// const _getmysqlLabor = ["123.58.32.151", "pbl"]; //edu數據庫信息
+// const _getmysqlLabor = ["123.58.32.151", "pbl"]; //edu數據庫信息f
 // const _getmysqluser = ["123.58.32.151", "cocorobouser"]; //edu數據庫信息
 // const _getmysqluser = ["123.58.32.151", "cocorobouser"]; //edu數據庫信息
 const _mysqlLabor = ["172.16.12.5", "pbl"]; //edu數據庫信息
 const _mysqlLabor = ["172.16.12.5", "pbl"]; //edu數據庫信息
 const _mysqluser = ["172.16.12.5", "cocorobouser"]; //edu數據庫信息
 const _mysqluser = ["172.16.12.5", "cocorobouser"]; //edu數據庫信息
@@ -706,6 +706,55 @@ router.route("/copyFolder").all(async (req, res, next) => {
     }
     }
 });
 });
 
 
+
+// 下载文件功能
+router.route("/downloadFile").all(async (req, res, next) => {
+    var json = queryString(req.url);
+    let params = {
+        documentid: (json && json['documentid'] || req.body[0].documentid),
+        filename: (json && json['filename'] || req.body[0].filename),
+    };
+    try {
+        const response = await client.documents.download({ id: params.documentid });
+        console.log(response);
+
+        // 根据response的类型设置Content-Type
+        const contentType = response.type || 'application/octet-stream';
+        res.setHeader('Content-Type', contentType);
+        res.setHeader('Content-Disposition', `attachment; filename="${encodeURIComponent(params.filename)}"`);
+        
+        // 直接发送blob数据
+        res.send(Buffer.from(await response.arrayBuffer()));
+    } catch (error) {
+        console.error("下载文件时发生错误:", error);
+        res.status(500).json({ error: error instanceof Error ? error.message : "发生错误" });
+    }
+});
+
+// 下载文件功能
+router.route("/downloadFile2").all(async (req, res, next) => {
+    var json = queryString(req.url);
+    let params = {
+        documentid: (json && json['documentid'] || req.body[0].documentid),
+        filename: (json && json['filename'] || req.body[0].filename),
+    };
+    try {
+        const response = await client.documents.download({ id: params.documentid });
+        console.log(response);
+
+        // 直接返回blob数据
+        res.setHeader('Content-Type', response.type || 'application/octet-stream');
+        res.setHeader('Content-Disposition', `attachment; filename="${encodeURIComponent(params.filename)}"`);
+        
+        const buffer = Buffer.from(await response.arrayBuffer());
+        res.send(buffer); // 发送blob数据
+
+    } catch (error) {
+        console.error("下载文件时发生错误:", error);
+        res.status(500).json({ error: error instanceof Error ? error.message : "发生错误" });
+    }
+});
+
 function generateAPIKey(username) {
 function generateAPIKey(username) {
     let timeStamp = new Date().getTime();
     let timeStamp = new Date().getTime();