如何将图片上传并存储到数据库中? (上传几个图片存入数据库中)
在如今这个数字化的时代,我们已经习惯了使用图片来丰富我们的内容和体验。 在许多应用程序中,需要向服务器上传图像并存储它们以便与其他用户共享或将其用于以后。 许多初学者可能会感到困惑,不知道如何将图片上传到服务器并将其存储到数据库中。 本文将介绍如何使用PHP和MySQL将图片上传并存储到数据库中。
之一步:设置上传表单
在HTML中设置上传表单,并确保使用的属性和值适用于您的应用程序的需求。 在表单中,我们需要一个文件上传字段和一个提交按钮。 代码示例如下:
“`
“`
第二步:上传图片
当表单提交时,需要处理上传的文件并将其保存到服务器中。 PHP提供了一种内置函数`move_uploaded_file`,可以将上传的文件移动到指定的目录中。 以下代码演示如何使用此函数将文件保存到服务器中:
“`
if(isset($_POST[‘submit’])) {
$name = $_FILES[‘image’][‘name’];
$target_dir = “uploads/”;
$target_file = $target_dir . basename($_FILES[“image”][“name”]);
if (move_uploaded_file($_FILES[“image”][“tmp_name”], $target_file)) {
echo “The file “. basename( $_FILES[“image”][“name”]). ” has been uploaded.”;
} else {
echo “Sorry, there was an error uploading your file.”;
}
}
“`
在上面的代码中,我们首先获取上传文件的名字,并创建一个名为“uploads”的目录用于存储上传的文件。 然后,我们使用`move_uploaded_file`函数将上传的文件保存到服务器的“uploads”目录中。
第三步:将图片信息存储到数据库中
我们已经成功上传了图像,并将其保存到服务器上。 接下来,我们需要将相关的信息存储到数据库中。 以下是在MySQL中创建存储图像信息的表的示例代码:
“`
create table images (
id int(11) auto_increment primary key,
title varchar(200) not null,
image varchar(200) not null,
created datetime
);
“`
在上面的代码中,我们创建了一个名为“images”的表,用于存储上传的图像的信息,包括ID,图像名称,路径和创建日期。
接下来,我们需要编写SQL查询来将上传的图像信息存储到表中。 以下代码演示如何将上传的图像信息存储到我们创建的表中:
“`
if(isset($_POST[‘submit’])) {
$title = $_POST[‘title’];
$image = $_FILES[‘image’][‘name’];
// image file directory
$target_dir = “uploads/”;
// get image extension
$image_extension = strtolower(pathinfo($target_dir . $image,PATHINFO_EXTENSION));
// valid image extensions
$extensions_arr = array(“jpg”,”jpeg”,”png”,”gif”);
// check if uploaded file extension is a valid image extension
if( in_array($image_extension, $extensions_arr) ){
// insert record into database
$query = “INSERT INTO images(title,image,created) VALUES(‘$title’,’$target_dir$image’,now())”;
mysqli_query($con,$query);
// move the uploaded image to uploads directory
move_uploaded_file($_FILES[‘image’][‘tmp_name’],$target_dir.$image);
}
}
“`
在上面的代码中,我们首先从上传的表单中获取标题和图像的名称。 然后,我们使用`strtolower`函数获取图像的扩展名并将其存储在变量`$image_extension`中。 接下来,我们创建一个名为“extensions_arr”的数组,用于存储有效的图像扩展名。 我们使用`in_array`函数检查上传的文件扩展名是否为有效图像扩展名之一。 如果是,我们使用INSERT查询向表中插入新记录,并指定标题,图像路径和创建日期。 我们使用`move_uploaded_file`函数将上传的文件移动到服务器上。
第四步:在网页上显示上传的图像
我们已经成功地将图像上传并将其相关信息存储到数据库中。 接下来,我们需要从数据库中检索图像信息,并在网页上呈现它们。 以下是将在网页上显示上传的图像的PHP代码:
“`
// connect to database
$con = mysqli_connect(“localhost”,”username”,”password”,”database”);
// get records from the database
$query = “SELECT * FROM images ORDER BY id DESC”;
$result = mysqli_query($con,$query);
while($row = mysqli_fetch_array($result)){
echo “
echo “
“.$row[‘title’].”
“;
echo ““;
echo “
Created on “.$row[‘created’].”
“;
echo “
“;
}
?>
“`
在上述代码中,我们首先使用`mysqli_connect`函数连接到MySQL数据库。 然后,我们使用SELECT查询从“images”表中检索记录,并按ID倒序排序。 接下来,我们使用`mysqli_fetch_array`函数循环遍历结果集,并在网页上呈现每个记录的标题,图像和创建日期。
结论
本文介绍了如何将图像上传到服务器并将相关信息存储到MySQL数据库中。 实际上,此过程并不难,但需要一些编程技能和经验。 了解此过程的原理将有助于您更好地了解Web开发的工作原理。希望这篇文章对您有帮助。