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

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2016-06-13 09:45:24
原創
871 人瀏覽過


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字段。

1

2

3

4

5

6

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

<?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>

登入後複製


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




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



显示图片


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


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


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


3、输出图像内容。


imageView.php

1

2

3

4

5

6

7

8

9

10

11

12

13

<?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作为参数。例如:


1

" />

登入後複製


完成代码如下:


listImages.php


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

<!--?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);

?-->

 

 

<title>List BLOB Images</title>

<link href="imageStyles.css" rel="stylesheet" type="text/css" />

</HEAD>

<BODY>

<?php

while($row = mysql_fetch_array($result)) {

?>

" /><br/>

<?php

}

mysql_close($conn);

?>

</BODY>

</HTML></pre><div class=" contentsignin"="">登入後複製


以上是本文关于PHP 教程之如何使用BLOB存取图片信息的实例,希望本文对广大php开发者有所帮助,感谢阅读本文。
相關標籤:
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
TP5.1首發教程和獨孤九劍的TP5教程區別
來自於 1970-01-01 08:00:00
0
0
0
有什麼經典的symfony1.2教程
來自於 1970-01-01 08:00:00
0
0
0
js進階教程
來自於 1970-01-01 08:00:00
0
0
0
怎麼沒有mui教程
來自於 1970-01-01 08:00:00
0
0
0
PHP靜態代理程式和動態代理程式教程
來自於 1970-01-01 08:00:00
0
0
0
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板