PHP MySQL Загрузить изображение, связанное со всеми свойствами, используя форму

Это мой код формы для добавления нового продукта в мою таблицу «элементы» в базе данных.

                <form method = "post" action = "additem.php">
                    Product name: <input method = "text" name = "itemName" class = "field">
                    Size: <select name = "sizes" class = "field">
                        <option value = "XS">XS</option>
                        <option value = "S">S</option>
                        <option value = "M">M</option>
                        <option value = "L">L</option>
                        <option value = "XL">XL</option>
                    </select>
                    Gender: <select name = "gender" class='field'>
                        <option value = "Male">Male</option>
                        <option value = "Female">Female</option>
                        <option value = "Kids">Kids clothing</option>
                    </select>
                    Price: <input method = "text" name = "price" class = "field">
                    Image: 'Your code here'
                    <input type = "submit" class = "btn">
                </form>

PHP-код для вставки данных из формы в «элементы» таблицы. Пользователь вводит все свойства добавляемого элемента и должен загрузить файл изображения. Когда пользователь нажимает кнопку отправки, код php обрабатывается.

<?php

$link = mysqli_connect('localhost', 'root', '', 'onlinestorebd');
$itemName=mysqli_real_escape_string($link, $_POST['itemName']);
$itemSize=mysqli_real_escape_string($link,$_POST['sizes']);
$price=mysqli_real_escape_string($link, $_POST['price']);
$gender=mysqli_real_escape_string($link, $_POST['gender']);
$itemPhoto=mysqli_real_escape_string($link,$_POST['itemPhoto']);
$mysqli = new mysqli("localhost", "root", "", "onlinestorebd");
$qq = "INSERT INTO items (itemName, sizes, gender, price, itemPhoto) VALUES ('".$itemName."','".$itemSize."', '".$gender."', '".$price."','".$itemPhoto."')";
$result=$mysqli->query($qq);




mysqli_close($mysqli);



IF(!$result){
    echo "Data insert failed <br><br>";
    echo mysql_error();
    
} ELSE {

    echo "Item has been added";
    echo "<br><br><a href=\"editdb.php\">Back to products list</a>";
    
}

?>

Не совсем понятно, в чем тут вопрос. Я вижу Image: 'Your code here' — вы ожидаете, что другие добавят необходимый элемент ввода HTML, а затем закодируют процесс загрузки?

Professor Abronsius 05.05.2022 17:18
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
18
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Во-первых, вы должны добавить параметр для изображения с элементом формы.

Ваш код

<form method = "post" action = "additem.php">

Новый код

 <form method = "post" action = "additem.php" enctype = "multipart/form-data">

Затем проверьте файл php.ini.

file_uploads = On

И последний шаг

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["file"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Check if image file is a actual image or fake image
if (isset($_POST["submit"])) {
  $check = getimagesize($_FILES["file"]["tmp_name"]);
  if ($check !== false) {
    echo "File is an image - " . $check["mime"] . ".";
    $uploadOk = 1;
  } else {
    echo "File is not an image.";
    $uploadOk = 0;
  }
}
?>
getimagesize не рекомендуется проверять, что это изображение. Do not use getimagesize() to check that a given file is a valid image. Также пользователю нужно будет сделать больше
user3783243 05.05.2022 17:21

Мои советы — это всего лишь основные шаги.

flanders 05.05.2022 17:25

Другие вопросы по теме