节点base64编码不提供整个字符串

时间:2015-03-31 23:02:08

标签: javascript node.js base64 tostring

美好的一天,

我对Node有一个奇怪的问题,我正在将文件编码为Base64,虽然它适用于我编码的大多数PDF,但特别是不输出整个base64字符串。

实际的b64字符串的开头如下:"JVBERi0xLjMKJf////8KNiAwIG9i..."但我只得到"JVBERi0xLjMK"

这是我的代码:

function sendPDF() {
    // Grab the final PDF
    require('fs').readFile(transaction.deliverable, function (err, data) {
        if (err) {
            console.log(err);
            log(2, "Couldn't read: " + transaction.deliverable);
        } else {
            transaction.deliverable = new Buffer(data, 'binary').toString('base64');
            //transaction.deliverable = data.toString('base64');
            console.log(transaction.deliverable);

}

注释掉的线是另一种尝试。交易结构是:

function Transaction(snapshot) {
    var data         = snapshot.val();
    this.tid         = snapshot.key();
    this.request     = data.request;
    this.pages       = [];
    this.fileCount   = 0;
    this.deliverable = null;
    this.fileName    = "";
}

此事务简单存储了我从Firebase提取的一些信息,但重要的var .deliverable是我需要编码和发送的PDF路径的字符串。

当发生这种情况时,我没有得到任何读取错误,并且下一个事务通过此代码块就好了,给出了完整的base64字符串。

我很好奇,如果我的toString()正在插入base64字符串,但后来我认为我之前会遇到更大的问题。

有什么想法吗?我可以把它搁置一边继续我的工作,但我很想解决这个问题。谢谢。

0 个答案:

没有答案