ホームページ > php教程 > php手册 > 詳細説明:画像をデータベースに保存する方法

詳細説明:画像をデータベースに保存する方法

WBOY
リリース: 2016-06-21 09:00:16
オリジナル
1037 人が閲覧しました

画像ファイルや HTML ファイルなどのバイナリ データを MySQL データベースに直接保存したい場合は、この記事が最適です。 HTML フォームを介してこれらのファイルを保存する方法と、これらのファイルにアクセスして使用する方法を説明します。

この記事の概要:

。 mysql

で新しいデータベースを作成します。ファイルを保存する方法のサンプルプログラム

。ファイルにアクセスする方法のプログラム例

mysql で新しいデータベースを作成する

まず、mysql で新しいデータベースを作成する必要があります。バイナリ ファイルはこのデータベースに保存されます。この例では、データベース

を作成するには、次の手順を実行する必要があります:

。 MySql コントローラー

を入力します。 「データベース binary_data を作成する

」コマンドを入力します。コマンド「use binary_data;」を入力します。コマンド

「CREATE TABLE binary_data (id INT(4) NOT NULL AUTO_INCREMENT PRIMARY KEY、description CHAR(50)、bin_data LONGBLOB、filename CHAR(50)、filesize CHAR(50)、filetype CHAR(50))」を入力します。 " (改行不可)

事故がなければ、データベースとテーブルが確立されているはずです。

ファイルの保存方法に関するサンプル プログラム この例を使用すると、HTML フォームを通じてファイルをデータベースに転送できます。

<ccid_code>store.php3<?php// store.php3 - by Florian Dittmer <dittmer@gmx.net>?><HTML><HEAD><TITLE>Store binary data into SQL Database</TITLE></HEAD><BODY><?php// 如果提交了表单,代码将被执行:if ($submit) {// 连接到数据库// (你可能需要调整主机名,用户名和密码)MYSQL_CONNECT( "localhost", "root", "password");mysql_select_db( "binary_data");$data = addslashes(fread(fopen($form_data,  "r"), filesize($form_data)));$result=MYSQL_QUERY( "INSERT INTO binary_data (description,bin_data,filename,filesize,filetype) [接上一行:] VALUES ('$form_description','$data','$form_data_name','$form_data_size','$form_data_type')"); $id= mysql_insert_id();   print  "<p>This file has the following Database ID: <b>$id</b>";MYSQL_CLOSE();} else {// 否则显示储存新数据的表单?><form method="post" action=" <?php echo $PHP_SELF; ?>" enctype="multipart/form-data">File Description:<br><input type="text" name="form_description"  size="40"><INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000000"><br>File to upload/store in database:<br><input type="file" name="form_data"  size="40"><p><input type="submit" name="submit" value="submit"></form><?php}?></BODY></HTML></ccid_code>
ログイン後にコピー
このプログラムを実行すると、単純な HTML フォームが表示されます。[参照] をクリックしてファイルを選択し、[送信] をクリックします。

ファイルが Web サーバーにアップロードされると、プログラムはアップロードしたばかりのファイルの ID を通知しますので、後で使用できるようにこの ID を覚えておいてください。

ファイルへのアクセス方法に関するサンプル プログラム このプログラムを通じて保存したファイルにアクセスできます

<ccid_code><?php// getdata.php3 - by Florian Dittmer <dittmer@gmx.net>// 调用方法: getdata.php3?id=<id>if($id) {// 你可能需要调整主机名,用户名和密码: @MYSQL_CONNECT( "localhost", "root", "password"); @mysql_select_db( "binary_data"); $query =  "select bin_data,filetype from binary_data where id=$id"; $result = @MYSQL_QUERY($query); $data = @MYSQL_RESULT($result,0, "bin_data"); $type = @MYSQL_RESULT($result,0, "filetype");Header(  "Content-type: $type");echo $data;};?></ccid_code>
ログイン後にコピー
プログラムは知っておく必要がありますそのファイルにアクセスするには、パラメータとして ID を渡す必要があります。

例: データベース内のファイルの ID は 2 です。次のように呼び出すことができます:

getdata.php3?id=2

画像をデータベースに保存する場合は、それを呼び出すことができますイメージをそれと呼ぶようなものです。

例: データベース内の画像ファイルの ID は 3 です。次のように呼び出すことができます:

1MB を超えるファイルを保存する方法:

1MB を超えるファイルを保存する場合。 、プログラム、PHP 設定、SQL 設定に多くの変更を加える必要があります。

24MB 未満のファイルを保存するには、次の方法が役立ちます:

1. store.php3 を変更し、MAX_FILE_SIZE の値を 24000000 に変更します。

2. PHP 設定を変更します。通常の状況では、PHP は 2MB 未満のファイルのみを許可します。

3. MYSQL データ パッケージのサイズ制限を削除します。一般に、MYSQL のデータ パッケージは 1 MB 未満です。

4. 次のパラメータを使用して MYSQL を再起動する必要があります。

/usr/local/bin/safe_mysqld -O key_buffer=16M -O table_cache=128 -O sort_buffer= 4M -O record_buffer=1M -O max_allowed_pa​​cket=24M

5. それでもエラーが発生する場合:

非常に遅い接続で大きなファイルを保存している場合、PHP が見つかりません。制限時間は30秒です。 max_execution_time (php.ini 内) の値を -1

に変更できます。



関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート