我已成功将图像上传到服务器上名为propertyimages
的文件夹中,但问题是我无法在数据库中保存上传图像的路径
表单的代码是:
<form action="admin_insert_property_images.php" method="post" enctype="multipart/form-data">
<label for="file">Upload images:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>
admin_insert_property_images.php的代码是:
<?php
$con=mysqli_connect("localhost","root","","db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 2000000)
&& in_array($extension, $allowedExts))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
}
else
{
if (file_exists("propertyimages/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
$imagepath = "propertyimages/" . $_FILES["file"]["name"];
move_uploaded_file($_FILES["file"]["tmp_name"], $imagepath);
$sql="INSERT INTO propertyimages(propertyimage) VALUES ('".$imagepath."')";
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
}
}
}
else
{
echo "Invalid file";
}
mysqli_close($con);
?>
如果有人能告诉我如何存储图像的路径
,我将不胜感激答案 0 :(得分:0)
根据您的代码,似乎您没有运行查询,您应该运行查询:
$sql="INSERT INTO propertyimages(propertyimage) VALUES ('$imagepath')";
$mysqli->query($sql);
答案 1 :(得分:0)
您上传到的$ imagePath变量似乎没有指定相同的路径。 此外,代码不会显示您执行查询。
更改代码的else部分:
else {
$imagepath = "propertyimages/" . $_FILES["file"]["name"];
move_uploaded_file($_FILES["file"]["tmp_name"], $imagepath);
$sql="INSERT INTO propertyimages(propertyimage) VALUES ('".$imagepath."')";
$mysqli->query($sql);
}
或类似取决于您使用的是mysql还是mysqli。
在使用它作为生产代码之前,我强烈建议阅读mysql转义/更好的验证上传文件的方法实际上是图像(如果有人倾向于类型很容易伪造) - 更好地使用像GD这样的东西处理上传的图像并检查它是否可以作为图像处理/保存,以确保您不允许上传任何恶意内容。
一些建议的帖子:Properly Escaping with MySQLI | query over prepared statements