ホームページ > バックエンド開発 > PHPチュートリアル > PHP および MySQL_PHP を使用して画像を保存およびエクスポートするチュートリアル

PHP および MySQL_PHP を使用して画像を保存およびエクスポートするチュートリアル

WBOY
リリース: 2016-07-13 17:48:16
オリジナル
751 人が閲覧しました

Web サイトをデザインおよび作成するプロセスでは、画像をファイルとして保存するよりもデータベースに保存する方が便利な場合があります。 MySQL との黄金の組み合わせにより、上記の機能を簡単に実現できます。この記事では、MySQL データベースに写真を保存する方法と、データベース内の写真を表示する方法を読者に紹介します。

データベースをセットアップする
データベースで通常使用するテキスト型または整数型のフィールドと、画像の保存に使用する必要があるフィールドの違いは、保存する必要があるデータの量にあります。 MySQL データベースは大量のデータを保存するために特別なフィールドを使用し、データ型は BLOB です。

MySQL データベースは BLOB を次のように定義します: BLOB データ型は、可変量のデータを格納できる大きなバイナリ オブジェクトです。 BLOB には、TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB の 4 種類があり、それぞれ保存できる最大データ長が異なります。

使用する必要があるデータ型を導入した後、次のステートメントを使用して、画像を保存するためのデータ テーブルを作成できます。
CREATE TABLE 画像 (PicNum int NOT NULL AUTO_INCREMENT PRIMARY KEY、画像 BLOB);

アップロード スクリプト edu-cn.com を作成する
ファイルのアップロード方法についてはここでは紹介しませんので、興味のある方は「Web Page Tao Bar」の関連記事を参照してください。ここでは、アップロードされたファイルを受信して​​ MySQL データベースに保存する方法を主に説明します。具体的なスクリプト コードは次のとおりです。ファイル アップロード ドメインの名前は Picture であると仮定します。


If($Picture != "なし") {
$PSize = ファイルサイズ($Picture);
$mysqlPicture = addedlashes(fread(fopen($Picture, "r"), $PSize));
mysql_connect($host,$username,$password) または die("SQL サーバーに接続できません");
@mysql_select_db($db) または die("データベースを選択できません");
mysql_query("INSERT INTO Images (Image) VALUES '($mysqlPicture')") または die("Can't Perform Query");
} その他 {
echo "写真はアップロードされていません";
}
?>

このようにして、画像をデータベースに正常に保存できます。 MySQL への画像の挿入で問題が発生した場合は、MySQL データベースで許可されている最大パケット サイズを確認できます。設定値が小さすぎる場合は、データベースのエラー ログで対応するレコードが検索されます。

次に、上記のスクリプトプログラムについて簡単に説明します。まず、「If($Picture != "none")」でファイルがアップロードされているかどうかを確認します。次に、addslashes() 関数を使用して、データ形式エラーを回避します。最後に、MySQL に接続し、データベースを選択して画像を挿入します。

www.edu4u.com.cn

写真を見せる
画像をデータベースに保存する方法がわかったら、データベースから画像を取得して HTML ページに表示する方法を検討する必要があります。このプロセスはもう少し複雑です。以下に実装プロセスを紹介します。

画像を表示するには対応するヘッダーを送信する必要があるため、ヘッダーを送信した後は他のヘッダーを送信できないため、一度に 1 つの画像しか表示できないという問題に直面します。

この問題を効果的に解決するために、2 つのファイルを作成しました。このうち、最初のファイルは HTML ページのテンプレートとなり、画像の表示位置を決定します。 2 番目のファイルは、データベースからファイル ストリームを PHP および MySQL_PHP を使用して画像を保存およびエクスポートするチュートリアル タグの SRC 属性として実際に出力するために使用されます。

最初のファイルの単純な形式は次のようになります:



mysql_connect($host,$username,$password) または die("SQL サーバーに接続できません");
@mysql_select_db($db) または die("データベースを選択できません");
$result=mysql_query("SELECT * FROM Images") または die("Can't Perform Query");
While($row=mysql_fetch_object($result)) {
echo "";
}
?>


www.edu4u.com.cn

HTML ページを参照すると、画像が表示されるたびに Second.php3 ファイルが呼び出されます。 2 番目のファイルが呼び出されると、対応する画像 ID が渡され、これを使用してデータベースから対応する画像を取得し、表示することができます。

Second.php3 ファイルは次のとおりです:


$result=mysql_query("SELECT * FROM Images WHERE PicNum=$PicNum") または die("クエリを実行できません");
$row=mysql_fetch_object($result);
Header( "Content-type: image/gif");
echo $row->Image;
?>


九天銀河より抜粋

www.bkjia.com本当http://www.bkjia.com/PHPjc/478453.html技術記事 Web サイトのデザインや作成の過程では、画像をファイルとして保存するよりもデータベースに保存した方が便利な場合があります。 MySQL とのこの黄金の組み合わせにより、上記の機能を簡単に実現できます...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート