Я пытаюсь загрузить изображение вместе с данными формы. Я сохраняю всю информацию в базу данных и изображение в папку.Загрузка изображения в папку и изменение имени перед загрузкой PHP
Моя форма:
<form method="post" action="insert_product_page.php" enctype="multipart/form-data" id="insert_product">
<table width="80%" border="1">
<tr>
<th width="49%" align="left" scope="col">Product Title</th>
<th width="51%" align="left" scope="col"><input name="product_title" type="text" required id="product_title" ></th>
</tr>
<tr>
<td align="left">Product Category</td>
<td align="left"><select name="product_cat" required>
<option>Select A Category</option>
<option>Category A</option>
<option>Category B</option>
<option>Category C</option>
</select></td>
</tr>
<tr>
<td align="left">Product Brand</td>
<td align="left"><select name="product_brand" required>
<option>Select A Brand</option>
<option>Brand A</option>
<option>Brand B</option>
<option>Brand C</option>
<option>Brand D</option>
</select></td>
</tr>
<tr>
<td align="left">Product Image</td>
<td align="left"><input name="product_image" type="file" ></td>
</tr>
<tr>
<td align="left">Product Description</td>
<td align="left"><input name="product_price" type="text" required id="product_price" ></td>
</tr>
<tr>
<td align="left">Product Keyword</td>
<td align="left"><input name="product_keyword" type="text" required id="product_keyword" ></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" name="insert_post" value="Insert New Product"></td>
</tr>
</table>
</form>
insert_product_page.php:
<?php
include 'includes/dbConnect.php';
$product_cat= mysql_real_escape_string($_POST['product_cat']);
$product_brand= mysql_real_escape_string($_POST['product_brand']);
$product_title= mysql_real_escape_string($_POST['product_title']);
$product_price= mysql_real_escape_string($_POST['product_price']);
$product_desc= mysql_real_escape_string($_POST['product_desc']);
$product_keyword= mysql_real_escape_string($_POST['product_keyword']);
$sql = "INSERT INTO products (product_id, product_cat, product_brand, product_title, product_price, product_desc, product_keywords) VALUES (NULL,'$product_cat', '$product_brand', '$product_title', '$product_price', '$product_desc', '$product_keyword')";
$id = mysqli_insert_id();
// Place image in the folder
$newname = "$id.jpg";
move_uploaded_file($_FILES['product_image']['tmp_name'], "images/$newname");
if (mysqli_query($con, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($con);
}
$con->close();
?>
dbConnect.php:
<?php
error_reporting(E_ERROR);
$servername = 'localhost';
$username = 'root';
$password = '';
$database = 'ecommerce';
// Create connection
$con = mysqli_connect($servername, $username, $password,$database);
// Check connection
if (!$con) {
die("Connection failed: " . mysqli_connect_error());
}
//echo "Connected successfully";
?>
Данные успешно сохранение в базе данных и изображение является загрузка в папка, но изображение не имеет имени и заменяет последнее загруженное изображение. Я пытаюсь загрузить изображение с тем же именем, что и auto_incremented id, сохраненный в базе данных. Пожалуйста, направляйте меня, где я делаю ошибку. Заранее спасибо
Попробуйте поместить полный путь в место, где вы хотите сохранить загруженный файл, во втором аргументе move_uploaded_file. – mti2935
Кто-нибудь когда-либо говорил вам, что вы не можете смешивать MySQL API раньше? Если никто не имеет, то тогда я первый ;-) –
* Я не поклонник смешанных напитков Ralph * @ Fred-ii- –