Первый шаг - установить для свойства enctype в теге формы значение multipart / form-data. Вы можете узнать больше о том, что это делает здесь :
<form action="bloemtoevoegen.php" method="POST" enctype="multipart/form-data">
Когда форма отправлена, мы сохраняем файл в каталоге и сохраняем путь в нашей базе данных:
if (!empty($_POST) && !empty($_FILES["product_foto"]["name"])) {
$naam = htmlspecialchars($_POST['product_naam']);
$categorie = htmlspecialchars($_POST['product_categorie']);
$prijs = htmlspecialchars($_POST['product_prijs']);
$omschrijving = htmlspecialchars($_POST['product_omschrijving']);
$target_directory = getcwd() . "/uploads/"; // The location to store the files
$file_name = basename($_FILES["product_foto"]["name"]); // The uploaded file name
$target_path = $target_directory . $file_name; // The path to our file
if ( move_uploaded_file($_FILES["product_foto"]["tmp_name"], $target_path) ) {
// We have added "product_foto" to the INSERT INTO and added $file_name to the VALUES
$insert = "INSERT INTO producten (product_naam,product_categorie,product_prijs,product_omschrijving,product_foto)
VALUES('$naam','$categorie','$prijs','$omschrijving','$file_name')";
} else {
die("Unable to save file to disk");
}
}
На заметку:
Вам нужно будет создать каталог с именем uploads
. Он будет расположен в том же каталоге, в котором находится файл добавляемого вами продукта.
Я предположил, что в вашей таблице базы данных есть поле product_foto
в выражении INSERT INTO
. Возможно, вам придется изменить это, чтобы оно соответствовало вашему фактическому имени поля
Теперь у вас должен быть файл изображения, сохраненный в вашей базе данных, и файл должен существовать в вашем каталоге.
Если вы предпочитаете сохранить путь, перейдите к этой строке:
$insert = "INSERT INTO producten (product_naam,product_categorie,product_prijs,product_omschrijving,product_foto)
VALUES('$naam','$categorie','$prijs','$omschrijving','$target_path')";