node.js-下载本地docx或pdf编码为base64字符串

发布于 2025-01-26 08:06:14 字数 791 浏览 6 评论 0原文

我想将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");
});

如何存储维护正确格式的文档?

I want to store docx or pdf locally inside a folder of my node.js project. Those documents are encoded as Base64 strings but they have specific media type. For this reason when I try to write a file in usual ways, as shown below, the result is something of unreadable.

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");
});

Here the output

How can I store a document which maintain the right format?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

趴在窗边数星星i 2025-02-02 08:06:14

我已经解决了这个解决方案:

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;

I've solved with this solution:

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;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文