Не удалось загрузить документ PHPMailer PDF Base64 строка - PullRequest
0 голосов
/ 08 февраля 2020

Я хочу отправить PDF документ, используя строку BASE64. Файл PDF отправляется, но при загрузке / открытии документа PDF по электронной почте он не загружается. Я попытался скопировать и вставить строку в Chrome, и он генерирует PDF. Как это исправить?

if(isset($_POST['pdf'])) {
  $base64String = 'data:application/pdf;filename=generated.pdf;base64,JVBERi0xLjMKJbrfrOAKMyAwIG9iago8PC9...';
  $phpmailer->addStringAttachment(base64_decode($base64String) 'セラミック矯正治療のご案内.pdf');
}

1 Ответ

2 голосов
/ 08 февраля 2020

Этот код не будет генерировать правильное двоичное вложение, потому что полный data URL не является строкой base64. Удалите заголовок из данных и расшифруйте его, то есть удалите префикс data:application/pdf;filename=generated.pdf;base64, перед тем, как пытаться его декодировать.

Если вы получаете строку из генератора PDF PHP, вы сможете получить двоичная строка PDF непосредственно из той, которую вы можете передать непосредственно в PHPMailer, который будет заниматься ее кодированием для вас.

...