利用MySQL存储PNG图片的方法(mysql中png)

在现今的互联网时代,图片在页面中占据了一个极其重要的位置,开发人员们也越来越注重对图片的存储和优化。

在实际开发中,我们使用MySQL存储和管理图片是一种非常常见的方式。那么,本文将向您介绍如何使用MySQL存储PNG格式图片。

1. 创建数据库和数据表

我们需要在MySQL中创建一个新的数据库,例如“image”,然后在该数据库中创建一个名为“picture”的数据表,该数据表用于存储PNG格式的图片,其结构如下所示:

“`sql

CREATE TABLE `picture` (

`id` int(10) NOT NULL AUTO_INCREMENT COMMENT ‘自增ID’,

`name` varchar(100) NOT NULL COMMENT ‘图片名称’,

`type` varchar(50) NOT NULL COMMENT ‘图片类型’,

`size` int(10) NOT NULL COMMENT ‘图片大小’,

`data` longblob NOT NULL COMMENT ‘图片二进制数据’,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT=’图片数据表’;


2. 编写上传图片代码

接下来,我们需要编写一段PHP代码,用于将PNG格式的图片上传到MySQL数据库。以下是此操作的代码示例:

```php

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "image";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error)
die("连接失败: " . $conn->connect_error);

// 上传图片
if (isset($_FILES['file']) && $_FILES['file']['error'] == UPLOAD_ERR_OK)
{
// 获得文件名称、类型、大小、二进制数据
$name = $_FILES['file']['name'];
$type = $_FILES['file']['type'];
$size = $_FILES['file']['size'];
$data = addslashes(file_get_contents($_FILES['file']['tmp_name']));
// 保存图片到数据库
$sql = "INSERT INTO `picture` (`name`, `type`, `size`, `data`)
VALUES ('$name', '$type', '$size', '$data')";
if ($conn->query($sql) === TRUE)
echo "图片上传成功";
else
echo "图片上传失败: " . $conn->error;
}
// 关闭连接
$conn->close();
?>

以上代码使用了PHP中的$_FILES全局变量来获取上传的PNG格式图片的相关信息,并将其存储到MySQL数据库中的“picture”数据表中的“data”字段中。

3. 编写读取图片代码

我们需要编写一段PHP代码,用于从MySQL数据库中读取PNG格式的图片,并将其在网页上显示。以下是此操作的代码示例:

“`php

$servername = “localhost”;

$username = “username”;

$password = “password”;

$dbname = “image”;

// 创建连接

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

// 检查连接

if ($conn->connect_error)

die(“连接失败: ” . $conn->connect_error);

// 读取图片

$id = isset($_GET[‘id’]) ? intval($_GET[‘id’]) : 0;

$sql = “SELECT `type`, `data` FROM `picture` WHERE `id` = $id”;

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

// 输出图片

if ($result->num_rows == 1)

{

$row = $result->fetch_assoc();

header(“Content-type: ” . $row[‘type’]);

echo $row[‘data’];

}

else

echo “图片不存在”;

// 关闭连接

$conn->close();

?>


以上代码使用了PHP中的header()函数来设置网页的Content-Type头信息,以便浏览器正确显示PNG格式的图片。同时,也使用了MySQL中的SELECT语句从“picture”数据表中获取指定的PNG格式图片,并输出到网页。

综上所述,以上就是如何使用MySQL存储PNG格式图片的完整操作流程。通过此操作,我们可以更方便地管理和使用PNG格式图片,并有效提高网站的加载速度。

数据运维技术 » 利用MySQL存储PNG图片的方法(mysql中png)