формы — как загрузить и сохранить файл с нужным именем Stack Overflow

Я хочу загрузить и сохранить файл с именем переменной в моем корневом каталоге внутри папки проекта, этот код ниже — то, что я пробовал, но когда я иду в эту папку, там нет файла

<?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);

}}

?>

Мне интересно что мне делать

-1

Решение

Во-первых, у вас нет элемента формы с именем submit_student вот почему часть вашего кода не работает, согласно этому условному выражению if (isset($_POST['submit_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>";
}
?>

Кроме того, поскольку вы выполняете все из одного файла, вы можете просто сделать action="" вместо action='manage_add_result.php'


добавлять Отчет об ошибках к началу вашего файла (ов), которые помогут во время производственного тестирования.

error_reporting(E_ALL);
ini_set('display_errors', 1);
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]