Всем привет, я совсем недавно начал углубляться в разработку и столкнулся с одной проблемой! Помогите, пожалуйста, кто разбирается, целый день вожусь с этим. В php массиве список полей формы с указанием, какие из них уже загружены. Загруженные поля должны отображаться с пометкой "Уже загружен" и ним не должно быть возможности загружать файл. В общем после того, как добавил проверку загруженных файлов, файлы перестали загружаться в нужный каталог.
Код PHP:
<?php
session_start();
$heading = 'Название компании';
$field = 'Текстовое поле(файл)';
// $blacklist = [['Устав', true], ['Расчетный счет', false], ['Паспорт ответственного', true], ['ИНН ответственного', false]];
$blacklist = array(
'file_1' => array('name' => 'Устав', 'uploaded' => true),
'file_2' => array('name' => 'Расчетный счет', 'uploaded' => false),
'file_3' => array('name' => 'Паспорт ответственного', 'uploaded' => true),
'file_4' => array('name' => 'ИНН ответственного', 'uploaded' => false)
);
// echo key($blacklist);
?>
<!DOCTYPE html>
<html>
<head>
<title>Контактные данные</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
if (isset($_SESSION['message']) && $_SESSION['message'])
{
printf('<b>%s</b>', $_SESSION['message']);
unset($_SESSION['message']);
}
?>
<form method="POST" action="upload.php" id="upload-container" enctype="multipart/form-data">
<div id="myModal" class="form-zvonok">
<div id="myModal1" class="form-zvonok1">
<h2> <?php echo $heading; ?> </h2>
<hr class="hr-up">
<?php foreach ($blacklist as $key => $file) {?>
<?php if ($file['uploaded']): { ?>
<?php echo '<p>Имя поля: '.$file['name'].'</p>'
?>
<p><?php echo 'Файл загружен!' ?>
<hr>
<?php } else: { ?>
<div>
<?php echo "Имя поля: ".$file['name']; ?>
<?php echo '<input type="file" name= ".$key." /><br> Файл не загружен' ?>
</div>
<hr>
<?php } ?>
<?php endif ?>
<?php
} ?>
<br>
<input type="checkbox" id="myBtn" required><label>Нажимая кнопку «Отправить», я даю свое согласие на обработку моих персональных данных, в соответствии с Федеральным законом от 27.07.2006 года №152-ФЗ «О персональных данных», на условиях и для целей, определенных в Согласии на обработку персональных данных <span>*</span></label>
<br>
<br>
<input type="submit" id="myBtn" name="uploadBtn" value="Отправить" onclick="SendFile()"/>
<hr class="hr-down">
</div>
</div>
</form>
</body>
</html>
Обработчик формы:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Результат загрузки</title>
<link rel="stylesheet" type="text/css" href="upload_style.css">
</head>
<?php
session_start();
$message = '';
if (isset($_POST['uploadBtn']) && $_POST['uploadBtn'] == 'Upload')
{
if (isset($_FILES['file_1']) && $_FILES['file_1']['error'] === UPLOAD_ERR_OK)
{
// get details of the uploaded file
$fileTmpPath = $_FILES['file_1']['tmp_name'];
$fileName = $_FILES['file_1']['name'];
$fileSize = $_FILES['file_1']['size'];
$fileType = $_FILES['file_1']['type'];
$fileNameCmps = explode(".", $fileName);
$fileExtension = strtolower(end($fileNameCmps));
// sanitize file-name
$newFileName = md5(time() . $fileName) . '.' . $fileExtension;
// check if file has one of the following extensions
$allowedfileExtensions = array('jpg', 'gif', 'png', 'zip', 'txt', 'xls', 'doc');
if (in_array($fileExtension, $allowedfileExtensions))
{
// directory in which the uploaded file will be moved
$uploadFileDir = './uploaded_files/';
$dest_path = $uploadFileDir . $newFileName;
if(move_uploaded_file($fileTmpPath, $dest_path))
{
$message ='Файл успешно загружен.';
}
else
{
$message = 'При перемещении файла в каталог загрузки произошла ошибка. Убедитесь, что каталог загрузки доступен для записи веб-сервером.';
}
}
else
{
$message = 'Загрузка не удалась. Допустимые типы файлов: ' . implode(',', $allowedfileExtensions);
}
}
else
{
$message = 'При загрузке файла произошла ошибка. Пожалуйста, проверьте следующую ошибку.<br>';
$message .= 'Error:' . $_FILES['file_1']['error'];
}
}
$_SESSION['message'] = $message;
header("Location: index.php");
?>
</html>