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 Good PHP Q Buckle: 276167802、検証: csl)
まず、BLOB フィールドを持つ MySQL テーブルを作成する必要があります。
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 列に保存します。画像の表示
1 , MySQL BLOB から画像データと型を取得します
2. PHP header() 関数を使用して、型を画像 (image/jpg、image/gif、…) に設定します。
#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 画像タグから、対応する image_id をパラメータとしてこの PHP ファイルを参照できます。例:
<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"]; ?>" />
php チュートリアル"
以上がPHP は BLOB を使用して画像情報 (ソース コードを含む) にアクセスしますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。