Загрузка картинки в базу данных
"gsrc" : $('#gsrc').val() в этой строчке не присваивается картинка, как сделать так что бы в php файл передавалась картинка
В базе выводит uploads/1619374533
$.post(
"core.php",
{
"action" : "newGoods",
"id" : 0,
"gname" : $('#gname').val(),
"gsrc" : $('#gsrc').val(),
"gprice" : $('#gprice').val()
},
function (data) {
if (data === 1) {
alert('Запись добавлена');
init();
} else {
alert("Данные введены не правильно2");
}
}
//Добавляю новый товар в базу данных
$conn = connect();
$name = $_POST['gname'];
$price = $_POST['gprice'];
$path = 'uploads/' . time() . $_FILES['gsrc']['name'];
if (!move_uploaded_file($_FILES['gsrc']['tmp_name'], '../' . $path)) {
$response = [
"status" => false,
"type" => 2,
"message" => "Ошибка при загрузке фото",
];
echo json_encode($response);
}
$sql = "INSERT INTO items (id, name, src, price) VALUES (NULL, '$name', '$path', '$price')";
if ($conn->query($sql)) {
echo "1";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
mysqli_close($conn);
writeJSON();
Ответы (1 шт):
Я предполагаю, что тэг с id #gsrc выглядит примерно так: <input type="file" name="gsrc" id="gsrc">. Когда пользователь выбирает нужный ему файл, в значение value присваивается псевдо-путь до файла (это сделано в целях безопасности, чтобы злоумышленник не узнал, каким образом хранятся файлы на вашем ПК). Следовательно, после того, как пользователь выбрал нужный ему файл, input выглядит примерно вот так: <input type="file" name="gsrc" id="gsrc" value="uploads/1619374533">. Следовательно, когда вы используете это выражение: $('#gsrc').val(), вы и достаёте value, которое содержит в себе эту строку: uploads/1619374533. Чтобы отправить картинку на сервер, вам нужно будет использовать класс FormData, который поддерживается всеми современными браузерами. Пример, как отправлять файл вы можете посмотреть по этой ссылке: https://snipp.ru/jquery/uploads-files-ajax-jquery
Также не забудьте добавить в ваш тэг <form> атрибут enctype="multipart/form-data". Если вы не укажете этот атрибут в вашей форме, вы не сможете отправить файл.
Если задаёте вопрос, то пожалуйста, приложите весь код, который относится к заданному вопросу, иначе, человек, который хочет помочь вам будет гадать, что же у вас написано.