PHP は BLOB を使用して画像情報 (ソース コードを含む) にアクセスします
Jun 13, 2020 pm 05:27 PMphp は 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); ?>
<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 チュートリアル"
以上がPHP は BLOB を使用して画像情報 (ソース コードを含む) にアクセスしますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法
