「数据库存图」技能get!极简教程让你速学怎样存储图片 (怎样把图片存入数据库)

数据库存图技能get!极简教程让你速学怎样存储图片

在现代化的网络开发之中,图片的上传和存储已成为功能的必须点之一。无论是一个社交媒体网站还是一家电商平台,图片上传、管理和展示都是关键的功能之一,但是如何在后端存储图片却是一项比较费神的技巧。在这篇文章中,我们将学习如何通过数据库存储图片,从而达到方便管理、一致性、并且易于备份的目的。

1.数据库存储图片的原理

当用户上传图片时,图片的二进制内容被压缩成流格式,然后通过HTTP表单发送到服务器,分解成文件名和文件内容。在传统的Web开发模式中,这些图片最终都会被保存在本地服务器的磁盘上并进行管理。但是,当您开发的Web应用程序需要满足跨多个数据中心的需求时,存储在一个地方的二进制大型文件可能会很快成为一个问题,而这时候数据库存储图片就派上用场了。

数据库存储图片的原理很直观:将图片存储在数据库中的二进制blob字段中,这种方式将图片的二进制内容存储在一个二级文件系统中。与存储在硬盘上不同,数据库存储的图像是与数据一起存储的,因此数据被存储在相同的地方,使得数据的维护和管理更加便捷。

2. 连接数据库

我们将连接到MySQL数据库并创建一个名为“image_store”的新数据库。以下是如何连接数据库的代码示例:

“`php

$servername = “localhost”;

$username = “root”;

$password = “”;

$dbname = “image_store”;

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {

die(“Connection fled: ” . $conn->connect_error);

}

echo “Connected successfully”;

“`

连接成功后,我们可以执行以下语句创建一个名为“images”的新表来存储图片。

“`sql

CREATE TABLE images(

id INT AUTO_INCREMENT PRIMARY KEY,

image BLOB,

image_name VARCHAR(255)

);

“`

3. 上传图片并将其保存到数据库

以下是上传图片并将其保存到数据库的代码示例:

“`php

if(isset($_FILES[‘image’])){

$image_name = $_FILES[‘image’][‘name’];

$image = addslashes(file_get_contents($_FILES[‘image’][‘tmp_name’]));

$sql = “INSERT INTO images (image, image_name) VALUES (‘$image’, ‘$image_name’)”;

if ($conn->query($sql) === TRUE) {

echo “New record created successfully”;

} else {

echo “Error: ” . $sql . “
” . $conn->error;

}

}

“`

此段代码首先验证用户是否上传了图像,然后获取文件名和blob数据。我们使用“addslashes()”将二进制数据转换为字符串,然后将其插入到数据库表中。

4. 从数据库中检索图像并在页面上呈现

以下是从数据库中检索图像并在页面上呈现的代码示例:

“`php

$sql = “SELECT * FROM images”;

$result = $conn->query($sql);

if ($result->num_rows > 0) {

while($row = $result->fetch_assoc()) {

echo ““;

}

} else {

echo “0 results”;

}

“`

此段代码执行一个SQL查询,并从结果集中构建了一个包含所有图像的循环。对于每个图像,使用base64编码将图像数据转换为字符串形式,然后使用元素在html上呈现出来。

在本教程中,我们介绍了如何使用PHP将图像存储在MySQL数据库中。连接数据库、创建表,上传图像和将其解码然后在已经上传的图像中呈现并没有什么可吓人的。然而,学习如何存储和管理图像,能够加速至关重要的Web开发过程。我们希望这篇文章能够帮助你掌握存储图片的技巧,并在你的下一个Web应用程序中实现保存图像数据的功能。

相关问题拓展阅读:

如何往数据库中存图片

两种,一种是将图片转化成二进制数据流存入数据库中。一种是保存图片的路径,然后前台读取路径去调用图片。相关的代码百度一下应该会有,第二种方法实现上蔽世比较简单,就拿陆是存储路径,然后根据路径读取对应的图片显示出来。之一种就比较麻烦,要先把图宏敏肢片转化成二进制数据,读取时就是从数据库读取对应数据再转化成图片显示出来。

怎么把图片存入数据库中??

如果非要存入数据库表,直接以 BLOB类型的字段存入数据库即可。

但一般不推荐这样存,内容太大了,放在表中不合适。

一般做法:图片放在硬盘某个目录下,数据库中只存文件的路径。需要显示图片时橘握枣,先从数据库中找到相皮槐应的路径,然后再从磁盘找到对应的图片,显示出来。

不但图片这样做,想一些论坛的长篇帖子、论文、文档等,都是这样,不可能把具体内容存入数据库的,只存路径就圆拆够了。

关于怎样把图片存入数据库的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 「数据库存图」技能get!极简教程让你速学怎样存储图片 (怎样把图片存入数据库)