【发布时间】:2014-09-15 21:42:30
【问题描述】:
我想在项目文件夹内的根目录中上传并保存一个带有变量名的文件,下面的代码是我尝试过的,但是当我转到该文件夹时,那里没有文件
<?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);
}
}
?>
我想知道我该怎么办
【问题讨论】:
-
您应该首先将一些
else块添加到您的ifs 中,然后查看哪些条件失败。然后尝试找出他们失败的原因。另外,检查move_uploaded_file的返回值。而且,也许您需要激活或增加错误报告。 -
那么,所有的
ifs 都成功了,move_uploaded_file返回了true?您是否尝试过转储$target变量?echo realpath($target)的输出是什么? -
查看你的 karname/ 文件夹的 chmod
-
它告诉我上传按钮没有设置
-
这可能是因为您有两套单独的代码。您应该使用没有回显的标准 HTML 方法将 HTML 表单放在 PHP 之外,然后将整个 PHP/SQL 放在
<?php ... ?>内 - 另外,您没有名为submit_student的表单元素,这是最重要的原因。