Я пытаюсь загрузить путь к файлу в базу данных MySQL. У меня есть этот HTML форму:не удалось загрузить файл через базу данных
<form action="" method="post" name="add_maps" enctype="multipart/form-data">
<table border="1" cellpadding="2" cellspacing="1" align="center" dir="rtl">
<tr>
<th>
name of map</th>
<td>
<input type="text" name="name_of_map"/>
</td>
<th>
select map</th>
<td>
<input type="file" name="file" id="file"/>
</td>
</tr>
<tr>
<input type="submit" name="submit_map" value="upload"/>
</tr>
</table>
</form>
И на той же странице, у меня есть PHP код для загрузки:
<?php
require_once('../include/inner_global.php');
$hostdb = "localhost";
$namedb = "architect";
$userdb = "root";
$passdb = "root";
$id = $_REQUEST['id'];
$name='';
$conn = new PDO("mysql:host=$hostdb; dbname=$namedb", $userdb, $passdb);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$conn->exec("SET CHARACTER SET utf8mb4");
$path = "../uploads/".$_FILES['file']['name'];
if(isset($_POST['submit_map'])){
try{
$name = isset($_POST['name']) ? $_POST['name'] : '';
$ext = pathinfo($path, PATHINFO_EXTENSION);
if(move_uploaded_file($_FILES["file"]["tmp_name"], $path)){
$path = "./uploads/".$path;
$sql = "INSERT INTO maps(name_of_maps, projects_id, map) VALUES (:name, :id, :file)";
$stmt = $conn->prepare($sql);
$stmt->bindValue(":name", $name);
$stmt->bindValue(":id", $id);
$stmt->bindValue(":file", $path);
$count = $stmt->execute();
}
}
catch(PDOException $e) {
echo $e->getMessage();
header("location: insert_map_false.php?id=".$id);
}
}
?>
Когда я иду на страницу, где этот HTML форма есть, я получаю напрямую эта ошибка в заголовке:
PS
Файлы загружаются правильно на их пути, когда я нажимаю на загрузку, но не добавляется в базу данных. EDIT
Это мой стол
типы данных
Что ваш тип базы данных этого поля? – uruloke
показать нам полный код страницы, потому что, если вы получите сообщение об ошибке на странице, где находится html-форма, на этой странице должна быть проблема (даже перед загрузкой). –
попробуйте сделать var_dump ($ _ FILES) в блоке try, чтобы узнать, файл загружается. –