微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php使用blob存取图片的信息含源码

PHP使用blob存取图片的信息(含源码)

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`)
)

插入数据

图片信息插入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>
<form name=frmImage enctype=multipart/form-data action= method=post
class=frmImageUpload>
<label>Upload Image File:</label><br/>
<input name=userImage type=file class=inputFile />
<input type=submit value=Submit class=btnSubmit />
</form>
</div>
</BODY>
</HTML>

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

提交表单,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);
?>

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

<img src=imageView.PHP?image_id=<?PHP echo $row[imageId]; ?> />

完成代码如下:

listimages.PHP

<?PHP
$conn = MysqL_connect(localhost, root, );
MysqL_select_db(PHPpot_examples);
$sql = SELECT imageId FROM output_images ORDER BY imageId DESC;
$result = MysqL_query($sql);
?>
<HTML>
<HEAD>
<TITLE>List BLOB Images</TITLE>
<link href=imageStyles.css rel=stylesheet type=text/css />
</HEAD>
<BODY>
<?PHP
while($row = MysqL_fetch_array($result)) {
?>
<img src=imageView.PHP?image_id=<?PHP echo $row[imageId]; ?> /><br/>
<?PHP
}
MysqL_close($conn);
?>
</BODY>
</HTML>

感谢大家的阅读,希望大家收益多多。

原文链接:https://blog.csdn.net/u012275531/article/details/1791499

推荐教程:《php教程

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐