BLOB を使用して画像情報にアクセスする PHP の例
BLOB の紹介mysql BLOB 型
MySQL中,BLOB是个类型系列,包括:TinyBlob、Blob、MediumBlob、LongBlob,这几个类型之间的唯一区别是在存储文件的最大大小上不同。
最大 255 | |
最大 65K | |
最大16M | |
最大4G |
注: blob は mysql データベースの予約語です。 フィールド名には使用しないように注意してください 。
データベースの作成CREATE TABLE IF NOT EXISTS `myimg` ( `imgid` tinyint(3) NOT NULL AUTO_INCREMENT, `imgtype` varchar(25) NOT NULL DEFAULT '', `imgblob` mediumblob NOT NULL, PRIMARY KEY (`imgid`) )
<?php if(count($_FILES) > 0) { if(is_uploaded_file($_FILES['upimg']['tmp_name'])) { // 转成二进制 $imgBlob =addslashes(file_get_contents($_FILES['upimg']['tmp_name'])); }
enctype="multipart/form-data"
1. MySQL BLOB からイメージ データと型を取得します
2. PHP header() 関数を使用して、タイプを画像 (image/jpg、image/gif、…) に設定します。
3. 画像コンテンツを出力します。
<?php $conn = mysql_connect("localhost", "root", ""); mysql_select_db("myimg") or die(mysql_error()); if(isset($_GET['image_id'])) { $sql = "SELECT imgtype,imgblob FROM myimg WHERE imgid=".$_GET['imgid']; $result = mysql_query("$sql") or die("<b>Error:</b>SQL语句错误<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"]; ?>" />
PHP BloB の完全なサンプル リファレンス オンライン記事
??