用PHP和MySQL保存和输出图片

  

使用PHP和MySQL保存和输出图片的完整攻略包括以下步骤:

  1. 创建数据库表:首先需要创建一个用来保存图片的数据库表。表中应该包含两个列,一个是用来保存图片的二进制数据的列,另一个是用来指定图片类型的列,常用的图片类型包括JPEG、PNG和GIF。

示例代码:

CREATE TABLE `images` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `data` longblob NOT NULL,
  `type` varchar(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  1. 编写上传图片的PHP脚本:接下来需要编写一个PHP脚本,用来将用户上传的图片保存到数据库中。首先需要使用PHP内置的文件上传类来处理上传的文件,然后将文件的二进制数据和类型保存到数据库中。

示例代码:

if ($_FILES['image']['error'] === UPLOAD_ERR_OK) {
    $data = file_get_contents($_FILES['image']['tmp_name']);
    $type = $_FILES['image']['type'];

    $stmt = $pdo->prepare('INSERT INTO images (data, type) VALUES (?, ?)');
    $stmt->execute([$data, $type]);

    echo 'Image uploaded successfully';
} else {
    echo 'Error uploading image';
}
  1. 输出图片的PHP脚本:在向用户显示图片时,需要编写一个PHP脚本来输出保存在数据库中的图片。首先需要查询数据库来获取指定图片的二进制数据和类型,然后使用PHP的Header函数设置正确的Content-Type头,并将二进制数据直接输出到浏览器中。

示例代码:

$id = $_GET['id'];
$stmt = $pdo->prepare('SELECT * FROM images WHERE id = ?');
$stmt->execute([$id]);
$image = $stmt->fetch();

header('Content-Type: ' . $image['type']);
echo $image['data'];
  1. 在HTML页面中使用输出图片的PHP脚本:最后需要在HTML页面中调用输出图片的PHP脚本来显示保存在数据库中的图片。使用HTML的img标签,并将src属性设置为输出图片的PHP脚本的URL,即可将图片显示在页面中。

示例代码:

<img src="output_image.php?id=1" alt="Example Image">

以上就是使用PHP和MySQL保存和输出图片的完整攻略,希望能对你有所帮助。

相关文章