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ランキング
-
VBAでJPGサイズ変更
-
Illustratorで文字と画像を流し...
-
ドラッグアンドドロップで画像...
-
最も速い画像合成処理を教えて...
-
透過PNGが透過されない!!
-
SQLiteに画像を格納したい
-
GDI+を使ったビット数とDPIの扱い
-
★PHP★画像アップロードの際に余...
-
ビットマップ画像を読み込むプ...
-
C#とJavaで、MP3タグの画像を表...
-
pythonのファイル内に 手書き数...
-
ファイルアップロード
-
VBSの「MsgBox」について
-
ファルダに画像をいれておいて...
-
【PHP】画像が表示されず「×」...
-
PHP+PostgreSQLを使ってPDFファ...
-
PostgreSQLのラージオブジェク...
-
携帯電話から画像ファイルをア...
-
フォントの色を変えるには?
-
onedrive にexcelファイルをア...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBSの「MsgBox」について
-
拡張子php画像をjpg画像等に変...
-
透過PNGが透過されない!!
-
imageフォルダに、画像をリサイ...
-
アップロード画像数でCSSを分け...
-
VBAでJPGサイズ変更
-
Illustratorで文字と画像を流し...
-
VBAのコードを教えてください
-
C# Excelファイルへの画像挿入。
-
php,mysqlにて画像パス保存/表...
-
GDI+を使ったビット数とDPIの扱い
-
SQLiteに画像を格納したい
-
ListViewコントロールでサムネ...
-
★PHP?★画像を縦横比を変えずに...
-
phpで画像がどうしても文字化け...
-
ビットマップ画像を読み込むプ...
-
PHPで吐き出した画像にリンクを...
-
phpMyAdminに画像を保存できない
-
OpenGLで描いて画像ファイル出力
-
手作業で埋め込んだ、UserForm1...
おすすめ情報