我的脚本有一个用户上传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>";
}
答案 0 :(得分:2)
该文件将从临时目录中删除 请求是否尚未移走或重命名。
您需要将tmp_file移动到应用程序内的缓存目录,然后根据验证为true或false将其删除,或将其移动到永久目录。
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);
}
这只是模拟代码,但应该给你一个更好的主意。
答案 1 :(得分:0)
使用以下命令移动上传的文件:
move_uploaded_file($ uploadedFile,“some / where / temp.pdf”);
...并创建一个包含新文件名的隐藏表单字段(some / where ...)。