我想將 docx 或 pdf 本地存盤在我的 node.js 專案的檔案夾中。這些檔案被編碼為 Base64 字串,但它們具有特定的媒體型別。出于這個原因,當我嘗試以通常的方式撰寫檔案時,如下所示,結果是不可讀的。
const express = require("express");
const router = express.Router();
const fs = require('fs');
router.post("/evaluate", function(req, res) {
var oResume = req.body.resume;
var sMimeType = oResume.mimeType;
var sFileExtension = oResume.fileExtension;
var sBase64 = oResume.content.replace(/(\r\n|\n|\r)/gm, "");
fs.writeFile("cvs/out." sFileExtension, sBase64, 'base64', function(err) {
console.log(err);
});
res.status(200).send("OK");
});

如何存盤保持正確格式的檔案?
uj5u.com熱心網友回復:
我已經用這個解決方案解決了:
const express = require("express");
const atob = require("atob");
const router = express.Router();
const fs = require('fs');
router.post("/evaluate", function(req, res) {
var oResume = req.body.resume;
var sMimeType = oResume.mimeType;
var sFileExtension = oResume.fileExtension;
var sBase64 = oResume.content.replace(/(\r\n|\n|\r)/gm, "");
var sBinaryString = atob(sBase64);
var len = sBinaryString.length;
var aBytes = new Uint8Array(len);
for (var i=0; i<len; i ) {
aBytes[i] = sBinaryString.charCodeAt(i);
}
var blob = Buffer.from(aBytes.buffer);
fs.writeFile("cvs/out." sFileExtension, blob, function(err) {
console.log(err);
});
res.status(200).send("OK");
});
module.exports = router;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/473759.html
