###前提・実現したいこと
ここに質問したいことを詳細に書いてください
PHP(CakePHP)で画像表示システムを作っています。
mysqlにblob型で登録するところまではできたのですが、
viewからimgでhelperを使わず表示するところで苦戦しています。
よろしくお願いいたします。
###該当のソースコード
view <img src="Path/Basics/imgview?id=1" alt=""/> BasicsController public function imgview() { $this->autoRender = false; $id = getRequestParams($this->request, 'id'); $data = $this->Basic->Photodata($id); header('Content-type: image/jpeg'); echo( $data ); } model public function Photodata($id) { $SQL = "SELECT * FROM `students_photo` WHERE `ID`='$id';"; $res = $this->query($SQL); return $res[0]['students_photo']['photo']; } mySQL CREATE TABLE IF NOT EXISTS `students_photo` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `gakuseki_id` varchar(100) DEFAULT NULL, `photo` longblob, `photo_mime` varchar(255) DEFAULT NULL, `photo_size` bigint(20) DEFAULT NULL, PRIMARY KEY (`ID`) ) ENGINE=MyISAM DEFAULT CHARSET=ujis
###試したこと
###補足情報(言語/FW/ツール等のバージョンなど)
cakephp2
mysql
このコードでもあっているように見えますが、ブラウザからアクセスするとどのように表示されるのでしょうか?
ありがとうございます!srcのなか部分をフルパスでそのままブラウザに打つと、なにも表示されません。
debug()等でデータが正しく取得できているかみてみたらどうでしょうか
debug()で表示すると、バイナリー部分が表示できないようになっているのか、真っ白です。ただ、mime等の情報はDBから取得できていることを確認できています。また、cakephpでは無い他のシステムで表示できている画像を今回のDBにインポートしても同じ現象がおきます。
ブラウザのデベロッパーツールでレスポンスを見るとバイナリっぽい文字化けした文字が表示されますか?
Chromeのデベロッパーツールでみると、エラーでload resource: net::ERR_CONTENT_LENGTH_MISMATCHとなっています。
回答3件
あなたの回答
tips
プレビュー