PHP5 + MySQLでホームページを作成しております。
画像をバイナリデータでDBに登録するとことまではできたのですが、その画像データをどうやってテンプレートに表示させるかがよく分からず、質問させていただきます。
環境は下記の通りです。
=======================
サーバ:CentOS5.4(i386版)
※Apache、PHP5、MySQL、phpMyAdminはインストール済み
使用言語XHTML、CSS、JavaScript、PHP、MySQL(それぞれ別ファイルで作成しております)
=======================
現在までできている内容としては、
テンプレートのフォーム
<input type="file" name="upload_img"></input>
から画像を選択して、PHP側で$_FILEで受け取った後に
画像専用のテーブル
カラム名:USER_IMG
データ型:MIDIUMBLOB
に受け取った画像のバイナリデータをinsertするところまでです。
この後に、そのバイナリデータをテンプレート上に表示させたいのですが、その方法がよく分かりません。
この質問をする事前に、参考になりそうなサイトをいくつか調べていて、
・テーブルには画像以外にMIMEタイプを入れるカラムを用意して、MIMEタイプをもとにheaderのContent-typeを指定する
・Content-type: text/html; でも一応画像を表示させることはできる
ということは分かりました。
ですが、今作っているテーブルにinsertした画像を表示させるhtmlは
Content-type: text/html
で作成しており、そのテンプレート内に
<img src="画像パス/画像名.gif"></img>
といった形で表示させたい場合に、画像のパスはどうやって指定してあげたらよいのか分かりません。
また、そのページのContent-typeは
Content-type: text/html
ではなく、MIMEタイプから対応したContent-typeにした方が良いのでしょうか?
お分かりになる方いらっしゃいましたら、ご教授のほどお願い致します。
No.1ベストアンサー
- 回答日時:
ブラウザの動きを考えてみてください。
HTMLで記述されたページ
http://example.com/aaa.php
を取得する。この際HTMLを返すので Content-type は text/html です。
その後、そのHTMLをパースしレンダリングするのですが、その際に <img src=/img/example.jpg" /> があると、
別途リクエスト http://example.com/img/example.jpg を投げます。
このURL、この例で言えば img の場合に、ファイル名の画像をDBから取得する。aaa.php とは別のプログラムが必要になります。
(別にaaa.php に別の機能として実装してもいいですが)
この画像表示用のプログラムが返すのは画像データですが、その際のヘッダが画像の Content-type になります。
NARHさん
早速のご回答、ありがとうございます。
DBに登録した画像をテンプレート内に表示することができました。別にincファイル作って対応しましたが、結構苦戦しました。
また、画像アップロード・表示について調べたところ、今回のようにDBに直接登録することよりも、画像を保存するディレクトリを用意してそこに画像をアップして、DBにはファイル名だけを入れておくことが一般的でプログラムも簡単で、運用も楽だということが分かりましたので、質問をした後で申し訳ないですが、そちらの方法で対応させていただきます。
DBに画像を登録して、それを直接表示する方法を知ることができて、とても勉強になりました。
どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP 画像が表示出来ません。 1 2023/02/02 16:30
- PHP Content-Typeが機能していない? 2 2022/07/17 11:10
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
画像アップロードのファイル名...
-
VBSの「MsgBox」について
-
Illustratorで文字と画像を流し...
-
VBAでJPGサイズ変更
-
ChatGPTに作らせたい Excel VBA
-
GDを使って画像の背景を透過さ...
-
GDの画像変換でサーバーに負荷
-
DBに格納された画像データを縮...
-
アップロード画像数でCSSを分け...
-
透過PNGが透過されない!!
-
php,mysqlにて画像パス保存/表...
-
C# Excelファイルへの画像挿入。
-
拡張子php画像をjpg画像等に変...
-
エクセルでカレンダーマクロの...
-
フォントの色を変えるには?
-
pearのMailライブラリがうまく...
-
PHPで新しいウインドウで開く命...
-
phpファイルの編集について
-
Subversionのリポジトリの削除
-
centos6のlogにscript not foun...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBSの「MsgBox」について
-
VBAでJPGサイズ変更
-
拡張子php画像をjpg画像等に変...
-
透過PNGが透過されない!!
-
SQLiteに画像を格納したい
-
アップロード画像数でCSSを分け...
-
PythonのTkinter詳しい方へ。画...
-
ビットマップ画像を読み込むプ...
-
Illustratorで文字と画像を流し...
-
C# Excelファイルへの画像挿入。
-
php,mysqlにて画像パス保存/表...
-
pictureboxに表示した画像のフ...
-
OpenGLで描いて画像ファイル出力
-
ListViewコントロールでサムネ...
-
BLOBデーターの画像の表示方法...
-
「imagejpeg」(GD)で作成した...
-
【PHP】画像が表示されず「×」...
-
PHP MySQLに画像を直接保存
-
GDを使って画像の背景を透過さ...
-
★PHP★画像アップロードの際に余...
おすすめ情報