使用php处理作为整个pdf提交的pdf表单

时间:2016-01-22 07:51:17

标签: php forms pdf upload handle

我已经制作了一个表单,我希望用户将其作为整个PDF提交以保存在服务器上。我一直试图制作一个处理文件的PHP脚本。基本上,我从W3学校那里采取了这个例子并试图改编它:

<?php
$file = file_get_contents("php://input");
$target_dir = "uploads/";
$target_file = $target_dir . basename($file);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
    echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
    if (move_uploaded_file($file, $target_file)) {
        echo "The file ". basename( $file). " has been uploaded.";
    } else {
        echo "Sorry, there was an error uploading your file.";
    }
}
?>

然而,它不起作用。我收到第二条错误消息:&#34;抱歉,上传文件时出错。&#34;

我对php很新,非常感谢一些帮助。

谢谢!

更新:所有文档和示例都涉及HTML表单中的POST数据,因此输入字段名称在每个表单中都是已知的。我的PDF是生成服务器端的随机名称,所以我不得不调整示例。我用HTML格式制作了这个:

<?php
foreach ($_FILES as $name => $value)
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES[$name]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
move_uploaded_file($_FILES[$name]["tmp_name"], $target_file)
?>

然而,当我使用Adobe Acrobat从PDF本身提交时,我收到了一系列错误:

http://localhost/save.php[22/01/2016 20:23:05]
Notice: Undefined variable: name in C:\xampp\htdocs\save.php on line 4
Notice: Undefined index: in C:\xampp\htdocs\save.php on line 4
Notice: Undefined variable: target_dir in C:\xampp\htdocs\save.php on line 4
Notice: Undefined variable: name in C:\xampp\htdocs\save.php on line 7
Notice: Undefined index: in C:\xampp\htdocs\save.php on line 7

虽然我的脚本从HTML表单上传文件而不需要知道输入字段名称(在文档示例中总是已知),我很高兴,但是从PDF本身提交时它不起作用

有谁知道为什么会这样?

1 个答案:

答案 0 :(得分:0)

如果您通过发送整个文档提交PDF表单,则只需将原始发布数据作为文档数据。没有单独的帖子字段,但是:

$fileContent = file_get_contents("php://input");

......就够了。您现在在$ fileContent中拥有整个PDF文档。所以只需保存(验证后!)并完成。