業務で使うためのFuelPHPを勉強している最中です。
サンプルアプリの制作をしており、画面のimgタグの中に、DBから読み込んだ画像を表示しようとしたところ、
画像が上から少しだけ表示されたのみで、完全に表示されないデータがいくつかありました。
ビュー側のPHPではこのように書いております。
PHP
1 2foreach ($shohin_list as $value) { 3 echo 4 '<div class="col-3 w-auto">'. 5 '<div class="menu_card bc_colorPrimary">'. 6 '<div class="w-100 h-100 d-flex flex-column" id="'."menu/$value->shohin_code".'">'. 7 "<p class='menu_title bc_colorPrimaryLight'>$value->shohin_meisho</p>". 8 '<div class="w-100 flex-grow-1 bc_colorAccent text-center">'. 9 '<img src="'."image/data/$value->shohin_code".'" class="img-fluid">'. 10 '</div>'. 11 '<p class="text-right bc_colorPrimaryLight">'."$value->tanka 円</p>". 12 '</div>'. 13 '</div>'. 14 '</div>' 15 ; 16} 17 18
上記で生成されたのが以下のようなコードです。
<div class="col-3 w-auto"> <div class="menu_card bc_colorPrimary"> <div class="w-100 h-100 d-flex flex-column" id="menu/000008"> <p class='menu_title bc_colorPrimaryLight'>米麺のサラダパスタ</p> <div class="w-100 flex-grow-1 bc_colorAccent text-center"> <img src="image/data/000008" class="img-fluid"> </div> <p class="text-right bc_colorPrimaryLight">1400 円</p> </div> </div> </div>
そしてimgのsrcは以下のようなコードとなっております。
PHP
1 2class Controller_Image extends Controller 3{ 4 5 public function action_data() 6 { 7 $params = $this->request->route->method_params; 8 $data = DB::select('gazo_data')->from('m_shohin')->where('shohin_code',$params[0])->as_assoc()->execute(); 9 $gazo = $data[0]['gazo_data']; 10 header('Content-type:image/png'); 11 echo base64_decode($gazo); 12 } 13} 14
そして、不完全な形で表示されている画面がこちらです。
(黄色の部分は画像が入るdivボックスの背景色です。)
完全な形で表示されるデータはあるにはあるのですが、少ないです。
DBから読み込む過程で何かが起きているのか、それとも、そもそもDBに入っているbase64文字列が不完全なのか分かりません。
どのようにして原因を調べればよいでしょうか。
アドバイスを頂けると助かります。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/01 08:57