php画像をmysqlデータベースに保存し、データベースから画像を読み出す方法のソースコード


一般的にはサーバの下に画像を保存し、経路に従って読み出すのが一般的ですが、セキュリティや著作権などを考慮してmysqlのデータベースに画像を保存してから読み出す場合があります.このような画像は右クリック属性では、画像アドレスが見えません.次は逍遥の一生
phpで画像をmysqlに格納する方法と、どのように読み出すかを紹介します.
MySQLデータベースは専用のフィールドを使用して大容量のデータを保存します.データ型はBLOBです.
MySQLデータベースはBLOBのために以下のように定義されています.BLOBデータ型は大規模なバイナリオブジェクトであり、可変数のデータを保存することができます.BLOBには、TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOBの4つのタイプがあり、それぞれが保存できる最大データ長の違いがあります.
使用するデータ型を説明した後、次の文を使用して画像を保存するデータテーブルを作成できます.
  CREATE TABLE Images ( PicNum int NOT NULL AUTO_INCREMENT PRIMARY KEY, Image BLOB ); 
アップロード・スクリプトの作成
ファイルの作成方法のアップロードについては、ここでは紹介しません.興味のある読者は「ページ陶吧」内の関連記事を参照してください.ここでは、アップロードファイルを受信してMySQLデータベースに保存する方法について説明します.具体的なスクリプトコードは、ファイルアップロードドメインの名前がPictureであると仮定します.
<? 
If($Picture != "none") { 
$PSize = filesize($Picture); 
$mysqlPicture = addslashes(fread(fopen($Picture, "r"), $PSize)); 
mysql_connect($host,$username,$password2003) or die("Unable to connect to SQL server");
@mysql_select_db($db) or die("Unable to select database"); 
mysql_query("INSERT INTO Images (Image) VALUES ($mysqlPicture)") or die("Cant Perform Query"); 
}else { 
echo"You did not upload any picture"; 
} 
?> 

これにより、画像をデータベースに保存することができます.画像をMySQLに挿入中に問題が発生した場合は、MySQLデータベースで許可されている最大パケットのサイズを検出できます.設定値が小さすぎると、データベースのエラーログに対応するレコードが見つかります.
以下、上記のスクリプトプログラムを簡単に詳しく説明します.まず、「If($Picture!="none")」でファイルがアップロードされているかどうかを検出します.次にaddslashes()関数を使用して、データフォーマットのエラーを回避します.最後に、MySQLに接続し、データベースを選択して画像を挿入します.
画像を表示
図の作り方を知っていますか?データベースに入ると、データベースから画像を取り出してHTMLページに表示する方法を考える必要があります.このプロセスは少し複雑ですが、作成プロセスを紹介します.
PHP表示画像は対応するヘッダを送信する必要があるため、ヘッダを発行した後に他のヘッダを送信できないため、一度に1つのピクチャしか表示できないという問題に直面します.
この問題を効果的に解決するために,2つのファイルを作成した.ここで、最初のファイルはHTMLページのテンプレートとして、画像の表示位置を特定します.2番目のファイルは、ラベルのSRCプロパティとして、データベースから実際にファイルストリームを出力するために使用されます.
最初のファイルの簡単な形式は次のとおりです.
<HTML> <BODY> 
<? 
mysql_connect($host,$username,$password2003) or die("Unable to connect to SQL server");
@mysql_select_db($db) or die("Unable to select database");
$result=mysql_query("SELECT * FROM Images") or die("Cant Perform Query"); 
While($row=mysql_fetch_object($result)) {
echo "<IMG SRC=\"Second.php?PicNum=$row->PicNum\">"; 
} ?>
</BODY> </HTML> 

HTMLページが閲覧されると、画像が表示されるたびにSecondが呼び出されます.php 3ファイル.2番目のファイルが呼び出されると、対応するPicture IDが入力され、データベースから対応するピクチャを取り戻して表示することができます.
Second.phpファイルは次のとおりです.
<? 
$result=mysql_query("SELECT * FROM Images WHERE PicNum=$PicNum") or die("Cant perform Query"); 
$row=mysql_fetch_object($result); 
Header( "Content-type: image/gif");
echo $row->Image; 
?> 

原文:http://www.xiaoyaolife.com/Article/150169.html
上の仲介の簡単な例では、自分で改善して、自分の必要な機能を加えて、この機能をもっと完全にすることができます.