Вкратце:
У меня есть PDF, который клиенты могут заполнить. Когда они нажимают кнопку «Отправить», я хочу автоматически отправить электронное письмо с прилагаемым PDF-файлом. Это должно происходить на стороне сервера без дальнейшего взаимодействия со стороны клиента.
В Long:
В настоящее время у меня есть файл PDF, который должен размещать данные на сервере в виде данных формы html. Затем мой PHP-скрипт обрабатывает эти данные и отправляет текстовое сообщение с данными. Люди, получающие электронную почту, предпочли бы иметь копию фактического PDF, а не просто текст.
Итак, в Adobe Acrobat 9 Pro я установил кнопку «Отправить» для отправки в виде «PDF Полный документ» (как показано ниже).
Проблема в том, что я не знаю, что делать в PHP, чтобы справиться с этим. Я предположил, что он будет загружаться на сервер как часть массива $_FILES
, но print_r($_FILES)
показывает пустой массив, а count
$_FILES
и $_POST
равно 0
.
Итак, мой вопрос: что происходит с загруженным pdf? и есть ли что-нибудь, что я могу сделать с PHP, чтобы превратить этот pdf-файл в приложение электронной почты? Я не думаю, что у меня возникают проблемы с размером файла; post_max_size
– 2 МБ, а PDF – около ~ 725 КБ.
На самом деле я отправил данные FDF на сервер, а не весь PDF. Это означало, что мне пришлось написать целую кучу тарабарщины в моем PHP для обработки FDF, но все-в-одном это меньшая загрузка и соответствует требованиям клиента. Если вам действительно нужно загрузить весь PDF, ответ Patrick ниже должен быть правильным – вы должны найти загруженный pdf в $GLOBALS['HTTP_RAW_POST_DATA']
.
Вы можете извлечь необработанные данные PDF из $ GLOBALS ['HTTP_RAW_POST_DATA']. Вы можете вывести это в файл и открыть его, как и любой PDF-файл.
Если ваш массив $_FILES
пуст, вы, вероятно, используете неправильное значение атрибута <form enctype="">
. Проверьте, есть ли у вас:
enctype="multipart/form-data"
Это необходимо для формы, позволяющей отправлять файлы. Затем вы можете использовать загруженный файл и отправить его клиенту, который, кажется, вы можете.