Sendgrid-nodejs: PDF yang disandikan Base64 sebagai lampiran

Dibuat pada 15 Apr 2016  ·  4Komentar  ·  Sumber: sendgrid/sendgrid-nodejs

Saya memiliki file PDF base64 yang disandikan dan ingin melampirkannya ke email. Ketika saya melampirkannya dengan kode berikut, email yang dikirim memiliki PDF yang rusak terlampir:

email.addFile({
    filename: 'my-file.pdf',
    content: aBase64EncodedPDF,
    contentType: 'application/pdf',
}); 

Komentar yang paling membantu

Anda akan menambahkan string base64 sebagai lampiran dengan kode di atas, yang berarti Anda harus menyimpan lampiran dan mendekodekannya di ujung yang lain. Saya pikir Anda mungkin benar-benar ingin melakukan ini:

email.addFile({
    filename: 'my-file.pdf',
    content: new Buffer(aBase64EncodedPDF, 'base64'),
    contentType: 'application/pdf',
}); 

Semua 4 komentar

Anda akan menambahkan string base64 sebagai lampiran dengan kode di atas, yang berarti Anda harus menyimpan lampiran dan mendekodekannya di ujung yang lain. Saya pikir Anda mungkin benar-benar ingin melakukan ini:

email.addFile({
    filename: 'my-file.pdf',
    content: new Buffer(aBase64EncodedPDF, 'base64'),
    contentType: 'application/pdf',
}); 

@deaks-kt terima kasih atas kontribusi Anda!

@danielflippance apakah itu menyelesaikan masalah Anda?

Terimakasih atas infonya. Apakah solusi itu akan menggandakan jumlah memori yang digunakan? IE: Saya sekarang memiliki string base64 dan buffer yang berisi informasi yang sama. Jika demikian, itu akan secara signifikan meningkatkan penggunaan memori di server kami karena PDF cukup besar, jadi tidak sesuai untuk kasus kami. Saya akan melihat apakah kita dapat mengambil buffer sebelum merender ke base64.

Saya menduga itu akan mendekati dua kali lipat. Anda mendapatkan 3 byte untuk setiap 4 Base64, yang merupakan pengurangan 25%, tetapi saya berharap akan ada beberapa overhead untuk Array. Jika Anda benar-benar buntu dan harus menggunakan base64, maka saya sarankan untuk menyelidiki permintaan tarik #219 dan melihat https://github.com/form-data/form-data (yang digunakan perpustakaan ini melalui permintaan) untuk melihat apakah Anda dapat melakukan streaming dekode base64 atau bahkan mungkin menentukan bahwa data formulir sudah dikodekan selama di form.append

Apakah halaman ini membantu?
0 / 5 - 0 peringkat