看板 PHP 關於我們 聯絡資訊
我要從mysql讀出一個 BLOB 的圖片檔 http://140.112.241.250/show_BLOB.php 叉燒包= = 我有參考了版上的文章 我的code如下: show_BLOB.php <HTML> <BODY> <?php include "mysql_connect.inc.php"; echo "<img src=\"showpic.php\">"; ?> </BODY> </HTML> showpic.php <?php include("mysql_connect.inc.php"); // 連接DB $result = "select IMAGE from image where type ='A' AND site = 'CV'"; $sql = mysql_query($result); list($row) = mysql_fetch_row ($sql); header( "Content-type: image/jpeg"); echo $row; ?> 其中IMAGE 就是存圖片二進位檔的欄位 屬性是 mediumblob Binary 我弄了超久都出不來, 有誰可以幫我解答一下= = -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.241.250
LaPass:囧........... 06/05 23:56
LaPass:一般是記錄檔案位置,然後再用讀檔去讀圖....... 06/05 23:56
LaPass:雖然也不是沒看過這樣用的,只是別太虐待資料庫啊.... 06/05 23:57
LaPass:有些時間沒寫php了,不過印象中,不是用echo,是用別的東西 06/05 23:57
LaPass:這個? 06/06 00:03
FableKevinS:還是不行欸... 06/06 00:27
bibo9901:echo $row['IMAGE']; 06/06 00:36
buganini:show_BLOB.php 完全不需要用到php showpic.php可能有BOM? 06/06 00:37
bibo9901:基本上你把header那行拿掉 就會看到錯誤訊息了 06/06 00:37
buganini:檢查方式就自己連到showpic.php看內容是啥啊 06/06 00:38
FableKevinS:http://140.112.241.250/showpic.php 06/06 00:41
FableKevinS:我把header拿掉 是這樣的編碼 06/06 00:42
buganini:前面有<meta http-equiv="Content-Type" content="text/h 06/06 00:45
buganini:showpic.php是要負責吐出不多不少就是一個jpg檔 06/06 00:46
buganini:並不是把jpg的內容混在html裡面吐出來 06/06 00:46
FableKevinS:沒有欸我並沒有加,就跟上面的code一樣 06/06 00:47
buganini:那你在把header加回去,有可能是server加的 06/06 00:49
buganini:你可以自己把那個url另存出來用16進位編輯器看 06/06 00:49
buganini:或是mysql_connect.inc.php裡面有echo? 06/06 00:50
buganini:應該是沒有echo,因為show_BLOB.php沒有 06/06 00:52
buganini:不然就是db裡的內容就有問題了… 06/06 00:53
buganini:你可以用echo substr($row,0,4);看看 06/06 00:53
FableKevinS: Warning: substr() expects parameter 1 to be strin 06/06 00:55
FableKevinS:我是用phpmyadmin存的 無設定任何函數 06/06 00:55
buganini:oh jpg的前4個byte也看不到什麼東西XD 要用6,4 06/06 00:55
FableKevinS:出來都是亂碼 06/06 00:59
FableKevinS:我存成16位元看了 06/06 01:12
FableKevinS:我發現php中的編碼跟原圖的編碼不一樣欸..... 06/06 01:13
buganini:啥編碼? 編碼不是重點啊 那是binary的東西,我重抓了一次 06/06 01:19
buganini:前面多了一些換行符號和空白,去掉之後看是一男一女合照 06/06 01:19
buganini:在草地上,後面還有一群人 06/06 01:19
FableKevinS:喔所以是多了空白? 06/06 01:20
buganini:和換行 06/06 01:21
buganini:確切的說是0d 0a 20也就是\r \n space 06/06 01:21
FableKevinS:恩我debug看看 06/06 01:21
FableKevinS:怎麼會多跑出來= = 06/06 01:23
buganini:mysql_connect.inc.php裡面跑出來的 06/06 01:24
buganini:我直接抓mysql_connect.inc.php就獲得這三個bytes 06/06 01:24
FableKevinS:喔我在裡面有寫例外處理 06/06 01:25
FableKevinS:刪掉中文字and換行? 06/06 01:25
buganini:厄 例外沒發生的話應該也不會出現吧 檔尾沒問題嗎? 06/06 01:27
buganini:例外發生的話應該用exit;中止後續動作 也可以送個適當的 06/06 01:28
buganini:http status code 06/06 01:28
FableKevinS:我把連接寫進去showpic好了 06/06 01:29
FableKevinS:okㄌ= = 06/06 01:31
FableKevinS:原來是include有問題= = 06/06 01:31
buganini:恭喜 06/06 01:32
FableKevinS:還是感謝bu大幫我debug 06/06 01:35
MOONRAKER:你要很感謝他!找出這種問題短者一天兩天,也可能好幾週 06/06 05:29
shadowjohn:以前寫相簿也曾把圖塞資料庫,後來覺得效率不是很好~ 06/09 01:20