美好的一天,
我对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字符串,但后来我认为我之前会遇到更大的问题。
有什么想法吗?我可以把它搁置一边继续我的工作,但我很想解决这个问题。谢谢。