php使用blob存取圖片信息的方法

BLOB是一種MySQL數(shù)據(jù)類型,稱為二進(jìn)制大對(duì)象。正如它的名字它是用來存儲(chǔ)類似MYSQL二進(jìn)制和VARBINARY類型的、大量的字符串?dāng)?shù)據(jù)。

創(chuàng)新互聯(lián)建站長期為成百上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為尼木企業(yè)提供專業(yè)的網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì),尼木網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

MySQL BLOB分類

MySQL BLOB類型 最大存儲(chǔ)長度(字節(jié))

TINYBLOB (1)(2 ^ 8)

blob ((2 ^ 16)1)

MEDIUMBLOB ((2 ^ 24)1)

LONGBLOB ((2 ^ 32)1)

首先,我們需要創(chuàng)建一個(gè)MySQL表與一個(gè)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`)
)

插入數(shù)據(jù)

將圖片信息插入MySQL BLOB字段中。

1、上傳圖像文件.

2、獲取圖像屬性(圖像數(shù)據(jù)、圖像類型等等。)

3、圖像文件插入BLOB。

PHP實(shí)現(xiàn)腳本:

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>

執(zhí)行這個(gè)腳本后上傳表單將顯示如下:

提交表單,PHP獲取內(nèi)容圖像的文件并將其作為二進(jìn)制數(shù)據(jù)存儲(chǔ)到MySQL BLOB列。

顯示圖片

在瀏覽器上顯示BLOB圖像,我們必須:

1、從MySQL BLOB獲得圖像數(shù)據(jù)和類型

2、將類型設(shè)置為圖像(image/jpg, image/gif, …)使用PHP header()函數(shù)。

3、輸出圖像內(nèi)容。

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存儲(chǔ)的圖片。從HTML圖像標(biāo)簽我們可以參考這個(gè)PHP文件與相應(yīng)image_id作為參數(shù)。例如:

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

以上就是php使用blob存取圖片的信息(含源碼)的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!

名稱欄目:php使用blob存取圖片信息的方法
網(wǎng)站地址:http://www.muchs.cn/article32/jdocsc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、企業(yè)網(wǎng)站制作、全網(wǎng)營銷推廣、定制網(wǎng)站服務(wù)器托管、軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)