【发布时间】:2011-06-08 20:11:17
【问题描述】:
简而言之:
我有一份供客户填写的 PDF。当他们按下“提交”按钮时,我想自动发送一封附有完整 PDF 的电子邮件。这应该发生在服务器端,无需客户进一步交互。
长篇大论:
目前我已将 PDF 设置为将数据作为 html 表单数据发布到服务器。然后,我的 PHP 脚本会处理这些数据并发送带有数据的纯文本电子邮件。接收电子邮件的人更愿意拥有实际 PDF 的副本,而不仅仅是纯文本。
因此,在 Adobe Acrobat 9 Pro 中,我将提交按钮设置为“PDF 完整文档”提交(如下所示)。
问题是,我不知道用 PHP 做什么来处理这个问题。我以为它会作为$_FILES 数组的一部分上传到服务器,但print_r($_FILES) 显示的是一个空数组,$_FILES 和$_POST 的count 都是0。
所以我的问题是,上传的 pdf 发生了什么?我能用 PHP 做些什么来将该 pdf 转换为电子邮件附件吗?我认为我没有遇到文件大小问题。 post_max_size 是 2MB,而 PDF 文件只有大约 725kb。
我实际上最终将 FDF 数据而不是整个 PDF 发送到服务器。这意味着我必须在我的 PHP 中编写一大堆乱码来处理 FDF,但总而言之,这是一个较小的上传,它满足了客户的要求。如果你真的需要上传整个PDF,Patrick's answer below应该是正确的——你应该可以在$GLOBALS['HTTP_RAW_POST_DATA']找到上传的pdf。
【问题讨论】:
-
检查服务器的访问日志。如果整个 PDF 正在发送,您会在服务器上看到大小为 725+kb 的命中,并让您的 PHP 脚本从请求标头中转储尽可能多的信息。可以在客户端计算机上使用 wiresniffer 来准确查看 Acrobat 发送的内容。
标签: php pdf file-upload