首頁 >後端開發 >php教程 >php使用blob存取圖片的資訊(含源碼)

php使用blob存取圖片的資訊(含源碼)

烟雨青岚
烟雨青岚轉載
2020-06-13 17:27:113956瀏覽

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[&#39;userImage&#39;][&#39;tmp_name&#39;])) {
mysql_connect("localhost", "root", "");
mysql_select_db ("phppot_examples");
$imgData =addslashes(file_get_contents($_FILES[&#39;userImage&#39;][&#39;tmp_name&#39;]));
$imageProperties = getimageSize($_FILES[&#39;userImage&#39;][&#39;tmp_name&#39;]);
$sql = "INSERT INTO output_images(imageType ,imageData)
VALUES(&#39;{$imageProperties[&#39;mime&#39;]}&#39;, &#39;{$imgData}&#39;)";
$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[&#39;image_id&#39;])) {
$sql = "SELECT imageType,imageData FROM output_images WHERE imageId=" . $_GET[&#39;image_id&#39;];
$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中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除