バイナリデータ、などの画像ファイルやなどのHTML ファイル、に直接保存されたMySQL データベース
を通じてどのようにHTML 、これらのファイル形式を保存するために、どのようにアクセスし、これらのファイルを使用します。
本論文では、概要を示します。
MySQL の新しいデータベースを作成するために
プログラムする方法の一例に格納されているファイル
、プログラムファイルにアクセスする方法の例を
でmysqlの新しいの確立データベース
最初になければなりませんmysqlの新しいデータベースを作成するには、これらのバイナリファイルは、このデータベースに保存されます。データベースを確立するために、次の例の構造で使用される、次の手順を実行する必要があります。
入力のMySqlのコントローラは、
コマンドを入力し、「データベースbinary_dataを作成し、」
コマンドを入力します。「使用binary_dataを、」
コマンドを入力します(ID INTを表binary_dataを作成する」( 4)NOT NULLをAUTO_INCREMENT PRIMARY KEY、
説明CHAR(50)、bin_data LONGBLOB、ファイル名CHAR(50)、ファイルサイズのCHAR(50)、ファイルタイプCHAR(50));」(ラインを破られていない)
何の事故が存在しない場合、データベースと テーブルは 、同様に確立されなければなりません。
ファイルに格納されたプログラム方法の例この例では、あなたがすることができ、HTML 、データベースのフォームに転送ファイルを。。
Store.php3
<?phpの
// store.php3 - フロリアンディットマー<[email protected]>によります。
?>;
<HTML>
<HEAD> <TITLE> SQLデータベースへの格納バイナリデータ</ TITLE> </ HEAD>
<BODY>
<?phpの
// フォームを送信した場合、コードが実行されます。
もし($提出){
// データベースに接続します
//(ホスト名、ユーザー名とパスワードを調整する必要があります)
mysql_connect( "localhost"を、 "根"、 "パスワード");
mysql_select_db( "binary_data");
$データ=用にaddslashesはfopen(関数fread(($ form_data、 "R"、ファイルサイズ($ form_data)));
$結果=するmysql_query(「binary_data。INSERT INTO(説明、bin_data、ファイル名、
ファイルサイズ、ファイルタイプ) " " VALUES( '$のform_description'、 '$データ'、 '$のform_data_name'
'$のform_data_size'、 '$のform_data_type') ";
$ ID =にmysql_insert_id();
プリントは、"このファイルは、次のデータベースIDを持っている:$ IDを」。
mysql_close();
}他{
// 否则显示储存新数据的表单
>?;
<フォームメソッド= "ポスト"アクション= "<$ PHP_SELFエコーPHP;?>"のenctype = "multipart / form-data"を>
ファイルの説明:<BR>
<input type = "text" NAME = "form_description" サイズ= "40">
<INPUT TYPE =の "隠された" 名前= "MAX_FILE_SIZE" 値= "1000000">
<BR>;データベースに/ストアをアップロードするファイル:<BR>
<input type = "ファイル" 名= "form_data" サイズ= "40">
<P>、<入力タイプ= "提出" NAME = "提出" 値= "送信">
</フォーム>
<?phpの
}
?>
</ BODY>
</ HTML>
このプログラムが実行されている場合は、シンプルな表示されますのHTML をクリックし、フォームの「ブラウズ」[送信]をクリックし、ファイルを選択します。
ファイルをにアップロードされるとウェブサーバの後、プログラムは、単にファイルのアップロード教えてくれますIDをこの覚えて、IDを、使用されるであろう。
プログラムファイルにアクセスする方法の例は、
あなただけのファイルを保存している、このプロセスを介してアクセスすることができる
<PHP?
// getdata.php3 -フロリアンディットマーによって<[email protected]>
// メソッドを呼び出します:?Getdata.php3のID = <ID>
IF($以上のIDを述べた){
// ホスト名、ユーザー名とパスワードを調整する必要があるかもしれません:
@MYSQL_CONNECT( "localhost"を、 "根"、 "パスワード");
@mysql_select_db( "binary_data");
$クエリ=「SELECT bin_data、 binary_dataからWHERE ID =ファイルタイプIDの$ ";
$ @MYSQL_QUERY結果=($クエリ);
$ @MYSQL_RESULTデータ=(結果$、0、" bin_data ");
$ = @MYSQL_RESULTタイプ($結果、0、"ファイルタイプ」 );
ヘッダー(「コンテンツの種類:タイプの$」);
$エコーデータ;
}
?>
その文書を知っている必要がありますプログラムにアクセスするには、パラメータとしてIDを持っています。
たとえば:2のデータベース内のファイルのIDが必要ですこのようにそれを呼び出すことができます
?Getdata.php3は、上記のid = 2
あなたがデータベースに画像を保存する場合は、画像を呼び出すためとして、あなたはそれを呼び出すことができます。
例:データベースファイル内の画像ID 3.あなたはこのようにそれを呼び出すことができますです
。<「?Getdata.php3上記のID = 3」IMG SRC =>
:1MBのを超えるファイルを保存する方法を
あなたは1メガバイトを超えるファイルを保存したい場合は、とあなたのプログラム、PHPの設定、SQLの設定多くの変更を持っています。
以下のいくつかは、あなたが24メガバイト未満のファイル保存するために助けることができるかもしれません:
変更store.php3を、値MAX_FILE_SIZEを24万台に変更しました。
あなたのPHPが提供する修正、一般的には、2メガバイトPHPファイルのみ未満、あなたは(php.iniで)値をmax_filesizeしなければならない2400万に変更された
小さい1つのMYSQLより一般的には、削除MYSQLパケットサイズの制限MBデータパッケージ。
次のパラメータを使用して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_packet = 24M
あなたはまだ間違っている場合:
あなたが接続を介して大きなファイルを保存することは非常に遅い場合には、タイムアウトエラーの可能性があり、PHPのデフォルトの制限時間は30秒です。
あなたは、に変更された値を(php.iniで)max_execution_timeにすることができます-1
PHP + MySQLを使用して、出力ファイルを保存する方法
、ファイルを保存するためにサーバーにアップロードローカルファイルの後に、サーバースクリプト、2つの方法がある、として1がある
ファイルを特定のディレクトリの下のマシンに保存されているが、ここではそのような多くのファイルがあります不便で同じ名前のは、いくつかのプロセスによってもたらさ
自動的にファイル名を変更するシーケンス、プラスこれの一意性を確保するために、アップロード時の名前やその他の方法は、元のファイルのファイル名を失った
ファイル名の特定のクエリーによって、名称を開始しますファイル情報を多くの困難があり、文書の一元管理を助長されていません; 1がテキストである
データベースのパワーを使用してデータベースに保持部材は、簡単にファイル操作の多様性を達成することができます。本明細書で使用される
方法の二種類。
このグループのプログラムは、内部のデータベース・サーバにアップロードして、Webページファイルによってどのようにハードディスクを示してい
たファイルの内容を読み取ります。
説明:
次のように5つのプログラムが存在する:
プログラム1 file.sqlの構造は---データベーステーブルを使用する[注:データベースがテストに使用される]
2アップロードフォーム、upload.php、---
3 。submit.php ---アップロード・ハンドラ
4. show_info.php ---アップロードされたファイルの情報表示部
5 show_add.php ---表示[ダウンロード]ファイル
////////////////////////////////////////////////// ////////////////////
(1)file.sqlは---
//の簡単な説明
基本的な情報のデータベースの構造は、内容が、ここで注意してファイルを保存し、ファイルを保存するためにアップロードされましたLONGTEXT型を使用してフィールド、
平均最大ストレージ64Kバイトブロブ・タイプからです。場合に加え、2Mへの一般的なデフォルトの最大アップロードPHPの設定ファイルでは、
ファイルの転送が大きい、ああphp.iniの設定を調整することを忘れません。
//ファイルのソースが
受信(表を作成し
たIDのint NOT NULL AUTO_INCREMENT、#プライマリキー、自動蓄積
file_dataのLONGBLOB、#ファイル内容
FILE_TYPEのVARCHAR(100)、#ファイルタイプ
のfile_nameはvarchar(255)、#ファイル名
FILE_SIZE int型、#ファイルサイズ
PRIMARY KEY(ID)#主キー
)
////////////////////////////////////////////////// ////////////////////
(2)upload.php ---
//の簡単な説明
アップロードインターフェースは、ユーザーがファイルを選択し、次にsubmit.phpの契約に提出することは
注目に値します範囲MAX_FILE_SIZEがあってもよい、その値を設定することにより、隠され
たファイルのサイズを制限します。
//オープンソース
<HTML>
<HEAD>
<TITLE>ファイルアップロードフォーム</ TITLE>
</ HEAD>
<BODY>
<表>
<形成のenctype = 'マルチパート/フォームデータの' nameは= 'MyFormを'アクション=「送信.phpの'
メソッド=' POST '>
<INPUT TYPE = "隠された" NAME = "MAX_FILE_SIZE" VALUEの= "1000000">
<TR> <TD>ファイルのアップロード</ TD> <TD>を選択し
、<INPUT名=' myfileを」をタイプ= 'ファイル'> </ TD>
</ TABLE>
</ BODY>
</ HTML>