У меня есть форма HTML, где пользователь заполняет несколько деталей для регистрации на конкурс. Я хочу, чтобы они могли загрузить фотографию. PHP-скрипт успешно вводит все в базу данных, кроме Photo Name и Photo, любые идеи, почему?
HTML:
<form method="post" action="addboat.php">
<p>Add your boat to the 2018 species hunt</p>
<p>Boat Name :- <input type="text" name="boatname" size="42"></p>
<p>Boat Make/Model :- <input type="text" name="boatmake" size="42"></p>
<p>Skipper :- <input type="text" name="skipper"></p>
<p>Photo:- <input type="file" name="file"></p>
<input type="hidden" name="huntyear" value="2018">
<p align="center"><input type="submit" value="Submit" name="B1"></p>
<p align="center"> </p>
</form>
PHP:
$huntyear = $_POST['huntyear'];
$boatname = $_POST['boatname'] ;
$boatmake = $_POST['boatmake'];
$skipper = $_POST['skipper'];
// Image add
$imagename=$_FILES["file"]["name"];
//Get the content of the image and then add slashes to it
$imagetmp=addslashes (file_get_contents($_FILES['file']['tmp_name']));
$query_rsCatch = "INSERT INTO SpeciesHuntBoats (Year, BoatName, BoatMake, Skipper, PhotoName, Photo) VALUES
('$huntyear','$boatname','$boatmake','$skipper','$imagename','$imagetmp')";
$rsCatch = mysql_query($query_rsCatch, $webdb) or die(mysql_error());
Вы должны использовать мультиформатные данные формы в своей форме <form action="action_page" method="post" enctype="multipart/form-data">
Когда вы делаете запрос POST
, вам нужно кодировать данные, которые формируют тело запроса. Формы HTML предоставляют multipart/form-data
значительно сложнее, но позволяют включать в данные целые файлы. enctype='multipart/form-data
используется, когда вы хотите загрузить файл (изображения, текстовые файлы и т.д.) на сервер.