twofolls95
@twofolls95

Как записать в базу данных название загруженного изображения через форму?

Нужно реализовать запись в таблицу БД в столбец 'image' следующее:
images/post/['название картинки.jpg'];

Загрузку в папку я реализовал, всё работает, а вот почему-то запись в БД не хочет работать, var_dump показывает что массив $_FILES не содержит ничего, хотя загрузка файла в папку осуществляется. Может кто подсказать где я ошибся и как это реализовать?
Заранее спасибо! :)

Код:
function add_image($connect) {
	$path = '../../images/post/';
	$types = array('image/gif', 'image/png', 'image/jpeg');
	if($_SERVER['REQUEST_METHOD'] == 'POST'){
//Проверка файла на его тип
		if(!in_array($_FILES['image']['type'], $types))
			die();
//Перемещение файла в специальную директорию
		if(!@copy($_FILES['image']['tmp_name'], $path . $_FILES['image']['name'])){
			$image = ($_FILES['image']['name']);
			$sql = "INSERT INTO posts (`image`) VALUES ('$image')";
			mysql_query($connect, $sql);
		}
	}
	var_dump($_FILES);
}
  • Вопрос задан
  • 165 просмотров
Решения вопроса 1
glaphire
@glaphire Куратор тега PHP
PHP developer
Всегда надо смотреть, есть ли ненулевое значение в поле$_FILES['image']['error'].
Я начала воспроизводить код, сделала самую простую форму загрузки, и проблема отсутствия имени в $_FILES показала себя как ошибка номер 2 в $_FILES['image']['error'] - список ошибок.
Решается указанием в поле hidden значения value, кратным двойке, или вовсе удалением этого поля, валидация размера файла все равно достоверна только на сервере.
<input type="hidden" name="MAX_FILE_SIZE" value="524288" />
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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