Javascript 如何使用NodeEmailer发送base64转换的pdf
我的服务器上有一个base64版本的pdf,我可以在console.log中查看它的值。该变量称为Javascript 如何使用NodeEmailer发送base64转换的pdf,javascript,node.js,buffer,nodemailer,Javascript,Node.js,Buffer,Nodemailer,我的服务器上有一个base64版本的pdf,我可以在console.log中查看它的值。该变量称为encodedpdf,doingconsole.log(encodedpdf)显示pdf的base64版本 NodeEmailer允许我们将bsae64文件作为附件发送,并使用缓冲区进行转换。下面是代码 attachments: [{ filename: 'main.pdf', content: new Buffer(encodedpdf,'base6
encodedpdf
,doingconsole.log(encodedpdf)
显示pdf的base64版本
NodeEmailer允许我们将bsae64文件作为附件发送,并使用缓冲区进行转换。下面是代码
attachments: [{
filename: 'main.pdf',
content: new Buffer(encodedpdf,'base64')
}]
然而,我不断地得到这个错误
TypeError:第一个参数必须是字符串、缓冲区、ArrayBuffer、,
数组,或类似数组的对象
编辑1:
这是我的前端代码,我将pdf转换为base64并将其作为ajax发送
var element = document.getElementById('element-to-print');
html2pdf().from(element).outputPdf().then(function(pdf) {
const newpdf = btoa(pdf); //This line
$.post('./setup', newpdf, function(result) {
console.log('result', result);
});
在我的后端post请求中,我得到了一大块随机字符串,因此我假设
btoa(pdf)
正在将我的pdf转换为base64。这里可能有问题吗?您使用新缓冲区(字符串,'base64')
的方式是
请使用以下方法将字符串编码为base64
Buffer.from("I am a tring").toString('base64')
或者使用NodeEmailer的内置函数发送base64编码字符串pdf
filename: 'your.pdf',
content: 'encodedpdfstring', //EncodedString
encoding: 'base64'
我得到这个错误类型错误:使用nodemailerI的非字符串/缓冲区块无效我对我的问题做了一些更改。请你看看好吗?