@skyblast

Возможно ли сымитировать загрузку файла на сервер, если операция проходит на локальном ПК и установленном на нем Openserver?

Изучаю работу с БД. Пытаюсь сымитировать загрузку файла на сервер через html форму.

$name = $_POST['name'];
		$raiting = $_POST['raiting'];
		
		if (isset($_POST['submit'])) {
			
			if ((!empty($name)) && (empty($raiting))) {
				echo 'Введите Ваш рейтинг!';
			}
			if ((empty($name)) && (!empty($raiting))) {
				echo 'Введите Ваше имя';	
			}
			if ((!empty($name)) && (!empty($raiting))) {
				
				$dbc = mysqli_connect ('localhost','root','','guitarhero')
					or die('<b>Подключение к базе не установлено!</b>');	
				$query = "INSERT INTO raiting_tab (name, raiting, screenshot) VALUES ('$name','$raiting', '$screenshot')";
				$result = mysqli_query ($dbc, $query)
					or die('Данные не добавлены!');
					echo 'Спасибо ' . $name . '!<br>';
					echo 'Ваш рейтинг: ' . $raiting . '.';
			}
		}
	?>

            <form enctype="multipart/form-data" action="<?php $_SERVER['PHP_SELF']; ?>" method="POST">
                <label for="name">Ваше имя:</label>
                <input type="text" id="name" name="name" size=30 value="<?php echo $name; ?>"><br>
                <label for="raiting">Ваш рейтинг:</label>
                <input type="text" id="raiting" name="raiting" value="<?php echo $raiting; ?>"><br>
                <label for="screenshot">Загрузите скриншот для подтверждения</label>
                <input type="hidden" name="MAX_FILE_SIZE" value="32768">
                <input type="file" name="screenshot" id="screenshot"><br>
                <input type="submit" name="submit" value="Отправить">
            </form>


После отправки формы, по идее, в БД должно сохраниться имя файла. Подключение к БД и запрос проходят без ошибок, но именно данные от файла не сохраняются.
  • Вопрос задан
  • 93 просмотра
Решения вопроса 1
@MadridianFox
Web-программист, многостаночник
У вас в запросе на добавление данных в БД используется переменная $screenshot, но нигде выше (в предьявленном куске кода) она не определяется.
Вам необходимо получить из супеглобального массива $_FILES данные о загруженном файле, там будут название, размер и путь до временного файла. Обычно, при загрузке файлов берут временный файл и копируют туда где он будет лежать, а путь до этого самого "туда" записывают в базу.
Загружать файл можно даже "на локальном ПК и установленном на нем Openserver".
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Eridani
@Eridani
Мимо проходил
А вы массив $_FILES смотрели вообще, что у Вас туда приходит?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы