首頁  >  文章  >  後端開發  >  PHP 教程之如何使用BLOB存取图片信息实例_PHP教程

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

WBOY
WBOY原創
2016-07-13 10:41:331485瀏覽

http://www.Bkjia.com/uploadfile/Collfiles/20140106/20140106140840240.jpg

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>

</div>
</BODY>
</HTML>


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

http://www.Bkjia.com/uploadfile/Collfiles/20140106/20140106140840241.png


提交表单,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="http://blog.csdn.net/u012275531/article/details/imageView.php?image_id=<?php echo $row["imageId"]; ? alt="PHP 教程之如何使用BLOB存取图片信息实例_PHP教程" >" />


完成代码如下:


listImages.php





List BLOB Images




<img  src="http://blog.csdn.net/u012275531/article/details/imageView.php?image_id=<?php echo $row["imageId"]; ? alt="PHP 教程之如何使用BLOB存取图片信息实例_PHP教程" >" />

以上是本文关于PHP 教程之如何使用BLOB存取图片信息的实例,希望本文对广大php开发者有所帮助,感谢阅读本文。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/678029.htmlTechArticleBLOB是一种 MySQL 数据类型,称为二进制大对象。正如它的名字它是用来存储类MYSQL二进制和VARBINARY类型的、大量的字符串数据。 MySQL BLOB分类...
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn