2011-06-08 2 views
1

Вкратце:Может PHP обрабатывать форму PDF, представленный как полный PDF документ

У меня есть 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, Patrick's answer below должен быть правильным - вы должны иметь возможность найти загруженный pdf-файл в $GLOBALS['HTTP_RAW_POST_DATA'].

+1

Проверьте журнал доступа к серверу. Если бы весь PDF был отправлен, вы увидите хит на сервере размером 725 + kb, и ваш PHP-скрипт выведет столько информации, сколько может, из заголовков запросов. Проводник может использоваться на клиентской машине, чтобы точно узнать, что отправляет Acrobat. –

ответ

1

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

+1

Я довольно уверен, что наткнулся на ответ, подобный этому (после того, как я решил пойти другим путем). Я потерял связь, прежде чем вспомнил, что я ответил на свой вопрос, но, думаю, вы, по сути, сказали то же самое. Благодаря! –

0

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

enctype="multipart/form-data" 

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

+0

Помните, что эта «форма» была создана изнутри Acrobat (кем-то другим), это не обычная форма html. Любая идея, если Acrobat позволяет вам изменять эти атрибуты формы? –

+0

У меня нет идеи, что не так тогда, но могу ли я спросить вас, когда вы видите, что $ _FILES пуст? Вы его где-то регистрируете? –

+0

Я 'эхо передавал эту информацию браузеру, и когда форма отправлена, внутри Acrobat открывается встроенное окно браузера, в котором отображается выход php-страницы. –

Смежные вопросы