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
List BLOB Images <img src="imageView.php?image_id=<?php echo $row["imageId"]; ?>" />
感謝大家的閱讀,希望大家收益多多。
原文連結:https://blog.csdn.net/u012275531/article/details/1791499
推薦教學:《php教學》
以上是php使用blob存取圖片的資訊(含源碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!