@shaxboss

PHP Не работает загрузка файлов на сервер?

Всем привет! Помогите пожалуйста кто разбирается, целый день вожусь с этим. Я вывожу через цикл данные среди которых есть форма. И хочу при нажатии кнопки изменить, чтобы старый файл удалился с сервера, ее путь с базы данных и загрузился новый файл и записалась путь к новому файлу в базу данных. Но почему-то только в первой записи все работает, а уже в следующих записях на загружается новый файл на сервер. В чем может быть проблема
Заранее всем спасибо!
Код php
<div class="flex">
					<?php $osnovateli =  mysqli_query($connection, "SELECT * FROM `osnovateli` WHERE `tip` = 'osnovateli'"); ?>
					<?php while($osn = mysqli_fetch_assoc($osnovateli)){ ?>
					<div class="item">
						<form enctype="multipart/form-data" action="" method="POST">
							<p>Имя</p>
							<input type="text" name="id" value="<?php echo $osn['id']; ?>" hidden>
							<input type="text" name="imya" value="<?php echo $osn['imya']; ?>">
							<p>Picture</p>
							<img src="<?php echo $osn['picture']; ?>" alt="">
							<label for="newimg">
								<p class="newimg">Нажмите для загрузки нового изображеня</p>
								<input type="file" id="newimg" name="userfile"> 
							</label>
							<input type="text" name="picture" value="<?php echo $osn['picture']; ?>">
							<p>Фамилия</p>
							<input type="text" name="familiya" value="<?php echo $osn['familiya']; ?>">
							<p>Описание</p>
							<textarea name="opisanie" id="" cols="30" rows="10">
								<?php echo $osn['opisanie']; ?>
							</textarea>
							<p>Сссылка на Facebook</p>
							<input type="text" name="fb" value="<?php echo $osn['fb']; ?>">
							<p>Сссылка на Vkontakte</p>
							<input type="text" name="vk" value="<?php echo $osn['vk']; ?>">
							<p>Сссылка на Instagram</p>
							<input type="text" name="inst" value="<?php echo $osn['inst']; ?>">
							<span class="change">Изменить</span>
							<span class="delete do-delete">Удалить</span>
							<div class="change-confirm">
								<p>Изменить данные?</p>
								<input type="submit" value="Да" name="osnovateli-change" class="change">
								<span class="no-delete">Нет</span>
							</div>
							
							<div class="delete-confirm">
								<p>Удалить запись?</p>
								<input type="submit" value="Да" name="osnovateli-delete" class="delete">
								<span class="no-delete">Нет</span>
							</div>
						</form>
					</div>
					<?php }; ?>
				</div>

Обработчик формы
if($_POST['osnovateli-change']){

	if(unlink(dirname(__DIR__).$_POST['picture'])){
		echo "Deleted";
	}

	$destiation_dir = dirname(__DIR__) .'/img/upload/'.basename($_FILES['userfile']['name']);
	echo '<pre>';
	$imgsrc = '/img/upload/'.$_FILES['userfile']['name'];
	if (move_uploaded_file($_FILES['userfile']['tmp_name'], $destiation_dir )) {
	    echo "Файл корректен и был успешно загружен.\n";
	} else {
	    echo "Возможная атака с помощью файловой загрузки!\n";
	}

	echo 'Некоторая отладочная информация:';
	print_r($_FILES);

	print "</pre>";

	$change = mysqli_query($connection, "UPDATE osnovateli SET picture = '" . $imgsrc . "', imya = '" . $_POST['imya'] . "', familiya = '" . $_POST['familiya'] . "', opisanie = '" . $_POST['opisanie'] . "', fb = '" . $_POST['fb'] . "', vk = '" . $_POST['vk'] . "', inst = '" . $_POST['inst'] . "' WHERE id = '" .$_POST['id'] . "'");
	header('Location: http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); exit();
	if ($change === true){
		echo "Информация занесена в базу данных";
	}else{
		echo "Информация не занесена в базу данных";
	}
};
  • Вопрос задан
  • 161 просмотр
Пригласить эксперта
Ответы на вопрос 1
flapflapjack
@flapflapjack
на треть я прав
Я всё правильно понимаю? Вы сначала удаляете файл, а потом его двигаете?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы