PptxGenJS передача файла в обработчик PHP
Доброго времени суток.
Существует замечательная библиотека – PptxGenJS. С её помощью можно генерировать PowerPoint презентации на лету.
По умолчанию после формирования презентации, она тут же отдаётся в виде файла.
pptx.writeFile({fileName: "Presentation-name.pptx"});
Однако моя задача состоит в том, чтобы передать сгенерированный файл в PHP-обработчик, для дальнейшей отправки на почту.
Подскажите, как это сделать? Я нашёл информацию, что можно создавать blob и виде двоичного кода отправлять в обработчик. Но я не совсем понимаю как это сделать.
Ответы (1 шт):
Вы можете сделать вывод в base64 или бинарные данные (документация).
Для этого необходимо использовать функцию pptx.write("binarystring"). Далее, передаете данные на PHP скрипт.
Со стороны JS код будет выглядеть примерно так:
pptx.write("binarystring")
.then((data) => {
const formData = {
pptx: {
value: data,
options: {
filename: 'Presentation-name.pptx',
contentType: 'application/vnd.openxmlformats-officedocument.presentationml.presentation'
}
}
};
request.post({url:'/up.php', formData: formData});
Со стороны PHP, если требуется сохранить файл в систему то:
$data = file_get_contents($_FILES['pptx']['tmp_name']);
file_put_contents($_FILES['pptx']['name'], $data);
В переменной $data будут бинарные данные презентации.