如何上载和保存具有所需名称php的文件

如何上载和保存具有所需名称php的文件,php,forms,upload,Php,Forms,Upload,我想上传并保存一个带有变量名的文件在我的根目录下的项目文件夹中。下面的代码是我尝试过的,但是当我转到那个文件夹时,里面没有文件 <?php if (isset($_POST['submit_student'])){ $student_id=mysqli_real_escape_string($cnn,$_POST['student_id']); $exam_id=mysqli_real_escape_string($cnn,$_POST['exam_id']); echo

我想上传并保存一个带有变量名的文件在我的根目录下的项目文件夹中。下面的代码是我尝试过的,但是当我转到那个文件夹时,里面没有文件

<?php
if (isset($_POST['submit_student'])){
    $student_id=mysqli_real_escape_string($cnn,$_POST['student_id']);
    $exam_id=mysqli_real_escape_string($cnn,$_POST['exam_id']);

echo " <form action='manage_add_result.php' method='POST' enctype='multipart/form-data'>";
echo "  <input type='file' name='resultpdf'><br>";
echo "  <input type='hidden' name='exam_id' value=\"{$exam_id}\">";
echo "<input type='hidden' name='student_id' value=\"{$student_id}\">";
echo "<input type='submit' name='upload_btn' value='upload'>";
echo "</form>";
}
 ?>
 <?php 

 if (isset($_POST['upload_btn'])){
 if(isset($_FILES['resultpdf']['name'])){
 $newname=mysqli_real_escape_string($cnn,$_POST['student_id']) . "_".mysqli_real_escape_string($_POST['exam_id']) . ".pdf";
 $target='karname/'."{$newname}";
  move_uploaded_file( $_FILES['resultpdf']['tmp_name'] , $target);

 }


 }

 ?>

首先,您没有名为
submit\u student
的表单元素,这就是根据此条件语句
if(isset($\u POST['submit\u student'])部分代码不起作用的原因。

请尝试以下操作:

<?php
 if (isset($_POST['upload_btn'])){
    $student_id=mysqli_real_escape_string($cnn,$_POST['student_id']);
    $exam_id=mysqli_real_escape_string($cnn,$_POST['exam_id']);


    if(isset($_FILES['resultpdf']['name'])){
    $newname=mysqli_real_escape_string($cnn,$_POST['student_id']) . "_".mysqli_real_escape_string($_POST['exam_id']) . ".pdf";
    $target='karname/'."{$newname}";
    move_uploaded_file( $_FILES['resultpdf']['tmp_name'] , $target);
    }


    echo " <form action='' method='POST' enctype='multipart/form-data'>";
    echo "  <input type='file' name='resultpdf'><br>";
    echo "  <input type='hidden' name='exam_id' value=\"{$exam_id}\">";
    echo "<input type='hidden' name='student_id' value=\"{$student_id}\">";
    echo "<input type='submit' name='upload_btn' value='upload'>";
    echo "</form>";
    }
?>

您应该首先向
if
s添加一些
else
块,然后查看哪些条件失败。然后试着找出他们失败的原因。另外,检查
move\u uploaded\u file
的返回值。而且,您可能需要激活或增加错误报告。因此,如果
s成功,所有的
if,以及
move\u上传的文件
返回
true
?您是否尝试转储
$target
变量?
echo realpath($target)
的输出是什么?查看您的karname/folderit的chmod,告诉我上传按钮没有设置,可能是因为您有两套独立的代码。您应该使用不带echos的标准HTML方法将HTML表单放在PHP之外,然后将整个PHP/SQL放在
-Plus中,你没有名为
submit_student
的表单元素,这是最重要的原因。我在该页面中有3个表单,如下所示:第二个表单将由第一个表单生成,第三个表单将由第二个表单生成。我如何处理这个问题?@MortezaAzmoodehafshar我不知道Morteza如何处理。
error_reporting(E_ALL);
ini_set('display_errors', 1);