0

我的脚本有一个用户上传一个 pdf。我找到了一个 pdf 解析器,它可以显示纯文本的第一部分。然后,用户将验证数据是正确的数据。如果是,则用户提交数据并将其保存到文件中。对于不是文件的数据,我总是使用不可见的表单字段将信息传递给执行页面。但是,对于文件,我不确定最好的方法。

if ($_FILES["file"]["error"] > 0){
    echo "Error: " . $_FILES["file"]["error"] . "<br>";
}
else{
    $uploadedFile = $_FILES["file"]["tmp_name"];
    $result = pdf2text($uploadedFile);
    echo substr($result, 0, 200);
    echo "<BR>";
}
4

2 回答 2

2

基于POST方法上传手册

如果该文件未被移走或重命名,则该文件将在请求结束时从临时目录中删除。

您需要将 tmp_file 移动到应用程序内的缓存目录,然后根据您的验证是真还是假将其删除,或将其移动到永久目录。

if ($_FILES["file"]["error"] > 0){
    echo "Error: " . $_FILES["file"]["error"] . "<br>";
}
else{
    $uploadedFile = $_FILES["file"]["tmp_name"];
    $tmp_file     = PATH_TO_CACHE_FOLDER . time(). $_FILES["file"]["name"]
    if (move_uploaded_file($_FILES['userfile']['tmp_name'], $tmp_file)) {
        $result = pdf2text($uploadedFile);
        echo substr($result, 0, 200);
        echo "<BR>";

    }
}

在下一个脚本中

if(isValid() === true)
{
    $tmp_file = $_POST['tmp_file_name'];
    $file_name = $_POST['file_name'];
    move_uploaded_file($tmp_file, PERMANENT_PATH . $file_name);
}

这只是模拟代码,但应该给你一个更好的主意。

于 2013-01-28T10:33:58.847 回答
0

移动上传的文件:

move_uploaded_file($uploadedFile, "some/where/temp.pdf" );

...并创建一个包含新文件名的隐藏表单字段(一些/哪里...)。

于 2013-01-28T10:34:40.560 回答