Home > php教程 > php手册 > PHP 教程之如何使用BLOB存取图片信息实例

PHP 教程之如何使用BLOB存取图片信息实例

WBOY
Release: 2016-06-13 09:45:24
Original
822 people have browsed it


BLOB是一种MySQL数据类型,称为二进制大对象。正如它的名字它是用来存储类似MYSQL二进制和VARBINARY类型的、大量的字符串数据。



MySQL BLOB分类



MySQL BLOB类型 最大存储长度(字节)
TINYBLOB (1)(2 ^ 8)
blob ((2 ^ 16)1)
MEDIUMBLOB ((2 ^ 24)1)

LONGBLOB ((2 ^ 32)1)


在这篇教程中,我们学习如何使用PHP插入和读取MySQL BLOB字段。

(PS:T不错的PHP Q扣峮:276167802,验证:csl)

首先,我们需要创建一个MySQL表与一个BLOB字段。

CREATE TABLE IF NOT EXISTS `output_images` (
  `imageId` tinyint(3) NOT NULL AUTO_INCREMENT,
  `imageType` varchar(25) NOT NULL DEFAULT '',
  `imageData` mediumblob NOT NULL,
  PRIMARY KEY (`imageId`)
)
Copy after login


插入数据


将图片信息插入MySQL BLOB字段中。


1、上传图像文件.


2、获取图像属性(图像数据、图像类型等等。)


3、图像文件插入BLOB。


PHP实现脚本:


imageUpload.php

<?php
if(count($_FILES) > 0) {
if(is_uploaded_file($_FILES['userImage']['tmp_name'])) {
mysql_connect("localhost", "root", "");
mysql_select_db ("phppot_examples");
$imgData =addslashes(file_get_contents($_FILES['userImage']['tmp_name']));
$imageProperties = getimageSize($_FILES['userImage']['tmp_name']);
$sql = "INSERT INTO output_images(imageType ,imageData)
VALUES('{$imageProperties['mime']}', '{$imgData}')";
$current_id = mysql_query($sql) or die("<b>Error:</b> Problem on Image Insert<br/>" .
mysql_error());
if(isset($current_id)) {
header("Location: listImages.php");
}}}
?>
<HTML>
<HEAD>
<TITLE>Upload Image to MySQL BLOB</TITLE>
<link href="imageStyles.css" rel="stylesheet" type="text/css" />
</HEAD>
<BODY>

</p>
</BODY>
</HTML>
Copy after login


执行这个脚本后上传表单将显示如下:




提交表单,PHP获取内容图像的文件并将其作为二进制数据存储到MySQL BLOB列。



显示图片


在浏览器上显示BLOB图像,我们必须:


1、从MySQL BLOB获得图像数据和类型


2、将类型设置为图像(image/jpg, image/gif, …)使用PHP header()函数。


3、输出图像内容。


imageView.php

<?php
$conn = mysql_connect("localhost", "root", "");
mysql_select_db("phppot_examples") or die(mysql_error());
if(isset($_GET['image_id'])) {
$sql = "SELECT imageType,imageData FROM output_images WHERE imageId=" . $_GET['image_id'];
$result = mysql_query("$sql") or die("<b>Error:</b> Problem on Retrieving Image BLOB<br/>"
. mysql_error());
$row = mysql_fetch_array($result);
header("Content-type: " . $row["imageType"]);
echo $row["imageData"];
}
mysql_close($conn);
?>
Copy after login


上面的PHP代码将显示MySQL BLOB存储的图片。从HTML图像标签我们可以参考这个PHP文件与相应image_id作为参数。例如:


" />
Copy after login


完成代码如下:


listImages.php





List BLOB Images
Copy after login

以上是本文关于PHP 教程之如何使用BLOB存取图片信息的实例,希望本文对广大php开发者有所帮助,感谢阅读本文。
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template