2011-02-04 16 views
0

PHPを通してMySqlデータベースの画像をアップロードする方法を教えてください。 私はPHPでわずか数日間の経験があります。 私はどんなアプローチでも、ディレクトリにファイルを保存し、そのパスをデータベースに保存すること、またはイメージ全体をdatabseに保存することを意味します。私はPHPを介してmySqlデータベースに画像をアップロードする方法を教えてください

私はあなたにいくつかのコードやリンクを提供することができます場合は、私は感謝します。 私は既にいくつかのリンクに従っていますが、それらはバグだった。

+0

感謝をあなたのコメントに、しかし、男は、私は、コードがデータベースにアップロードするか、それがdatabseにATH P [です保存する必要があります。 db.Canのファイルパスのみをアップロードするほうがよいと私は知っています。 – Abhi

答えて

0

これは、ディレクトリ内の画像を挿入し、イメージの名前は、これはあなた自身のイメージ名 $ NAME = $ _FILESを追加する

<form name="aaa" method="post" enctype="multipart/form-data"> 
<input type="file" name="image"> 
<input type="submit" name="submit"> 
</form> 

<?php 
if(isset($_POST['submit'])) { 

//を開始するためのお手伝いをしますデータベース 希望に保存されます['イメージ'] ['名前']; $ extension = strrchr($ name、 '。'); $ image_name = "whatever_you_put"です。$ extension;

move_uploaded_file($_POST['image']['tmp_name'],"/image/".$image_name) //where image is a directory where image will be uploaded 
mysql_query("insert into table_name VALUES ('".$image_name."')"); 
} 
+0

こんにちはPrakash!私はあなたの応答が大好きです。アップロードする前にファイルの名前を変更する方法を教えてください。 – Abhi

+0

@Abhishek Guptaこのコードは、あなたがすでに持っているものよりもバギーではありません –

2

私はあなたのために役に立つかもしれないいくつかのキーワードをあげる:

  • BLOB(ファイルシステムに格納された画像データへ)
  • move_uploaded_file()(DB内の画像データを格納するための)
  • $_FILES
2

あなたは、データベース内の画像を保存するべきではありません(PHPでアップロードされたファイルにアクセスするため)。場所はディスク上の参照のみを保存する必要があります。

また、これはこっちに説明されていますStoring Images in DB - Yea or Nay?

+1

+1の優れたリンク、まさに私が探していたものです。 –

1

FYI、データベースに画像を保存するための悪い習慣です。

mysqlデータベースではなく、フォルダに画像を保存する方がよいでしょう。 image uploadを参照してください。

イメージをフォルダにアップロードし、相対パスをデータベースに保存するだけです。

3

このデータベースエンジンには、優れたSQLバイナリ追加アグリゲート機能がないため、これを回避することをお勧めします。

これは、大きな画像をMySQLに保存する場合は、1回のトリップでアップロードする必要があることを意味します。画像サイズが - 8MBの場合、あなたのサーバには8MBのRAMがあります。おそらくPHPリクエストはタイムアウトになります。なぜならアップロードをしてからデータベースに保存するのに数秒以上かかるからです。

イメージが1〜2MBの場合は、とにかく悪い方法かもしれません。バイナリファイルは、Webページが共有ホスティングで動作するはずなので、できるだけ少ないメモリを取るために、チャンクにアップロードする必要がありますが、それがあなたのケースか、専用のものかどうかはわかりませんが、また、チャンクでアップロードせずにリソースを無駄にすることになります。これは、大容量のファイルに対してはMySQLで達成するのが難しいです。

最終的には、ファイルへの参照を保存するか、イメージ識別子(データベースのID列)を使用してPHPスクリプトが特定のフォルダ内の画像を見つけられるようにするための規約を使用してください。

0

あなたは、のfile_get_contents()関数を使用して挿入し、あなたのテーブルのBLOBフィールドになり

関連する問題