Может ли PHP обрабатывать PDF-форму, представленную как полный PDF-документ - PullRequest
1 голос
/ 09 июня 2011

Коротко:

У меня есть PDF, который клиенты могут заполнить. Когда они нажимают кнопку «Отправить», я хочу автоматически отправить электронное письмо с приложенным заполненным PDF. Это должно происходить на стороне сервера без дальнейшего взаимодействия с клиентом.

В длинну:

В настоящее время у меня настроен PDF для отправки данных на сервер в виде данных html-формы. Мой PHP-скрипт затем обрабатывает эти данные и отправляет электронное письмо с данными. Люди, получающие электронное письмо, предпочли бы иметь копию действительного PDF, а не просто текст.

Итак, в Adobe Acrobat 9 Pro я установил кнопку «Отправить» для отправки в виде «PDF полного документа» (как показано ниже).

enter image description here

Проблема в том, что я не знаю, что делать в PHP, чтобы справиться с этим. Я предполагал, что он будет загружен на сервер как часть массива $_FILES, но print_r($_FILES) показывает пустой массив, а count для $_FILES и $_POST равен 0.

Итак, мой вопрос: что происходит с загруженным pdf? и есть ли что-нибудь, что я могу сделать с PHP, чтобы превратить этот PDF в вложение электронной почты? Я не думаю, что у меня возникают проблемы с размером файла; post_max_size - 2 МБ, а PDF - всего около 725 КБ.


Я фактически отправил данные FDF на сервер, а не весь PDF. Это означало, что мне пришлось написать целую кучу бреда в моем PHP для обработки FDF, но, в целом, это меньшая загрузка и она соответствует требованиям заказчика. Если вам действительно нужно загрузить весь PDF, Ответ Патрика ниже должен быть правильным - вы сможете найти загруженный pdf в $GLOBALS['HTTP_RAW_POST_DATA'].

Ответы [ 2 ]

1 голос
/ 29 июня 2012

Вы можете получить необработанные данные PDF из $ GLOBALS ['HTTP_RAW_POST_DATA']. Вы можете вывести это в файл и открыть его, как и любой другой PDF.

0 голосов
/ 09 июня 2011

Если ваш массив $_FILES пуст, вы, вероятно, используете неправильное значение атрибута <form enctype="">. Проверьте, есть ли у вас:

enctype="multipart/form-data"

Это необходимо для формы, позволяющей отправлять файлы. Затем вы можете использовать загруженный файл и отправить его клиенту, который, кажется, на это способен.

...