作者FableKevinS (FableKevinS)
看板PHP
标题[请益] 用php读取mysql中的图档
时间Tue Jun 5 23:30:05 2012
我要从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
1F:推 LaPass:囧........... 06/05 23:56
2F:→ LaPass:一般是记录档案位置,然後再用读档去读图....... 06/05 23:56
3F:→ LaPass:虽然也不是没看过这样用的,只是别太虐待资料库啊.... 06/05 23:57
4F:→ LaPass:有些时间没写php了,不过印象中,不是用echo,是用别的东西 06/05 23:57
6F:→ LaPass:这个? 06/06 00:03
7F:→ FableKevinS:还是不行欸... 06/06 00:27
8F:推 bibo9901:echo $row['IMAGE']; 06/06 00:36
9F:→ buganini:show_BLOB.php 完全不需要用到php showpic.php可能有BOM? 06/06 00:37
10F:→ bibo9901:基本上你把header那行拿掉 就会看到错误讯息了 06/06 00:37
11F:→ buganini:检查方式就自己连到showpic.php看内容是啥啊 06/06 00:38
13F:→ FableKevinS:我把header拿掉 是这样的编码 06/06 00:42
14F:→ buganini:前面有<meta http-equiv="Content-Type" content="text/h 06/06 00:45
15F:→ buganini:showpic.php是要负责吐出不多不少就是一个jpg档 06/06 00:46
16F:→ buganini:并不是把jpg的内容混在html里面吐出来 06/06 00:46
17F:→ FableKevinS:没有欸我并没有加,就跟上面的code一样 06/06 00:47
18F:→ buganini:那你在把header加回去,有可能是server加的 06/06 00:49
19F:→ buganini:你可以自己把那个url另存出来用16进位编辑器看 06/06 00:49
20F:→ buganini:或是mysql_connect.inc.php里面有echo? 06/06 00:50
21F:→ buganini:应该是没有echo,因为show_BLOB.php没有 06/06 00:52
22F:→ buganini:不然就是db里的内容就有问题了… 06/06 00:53
23F:→ buganini:你可以用echo substr($row,0,4);看看 06/06 00:53
24F:→ FableKevinS: Warning: substr() expects parameter 1 to be strin 06/06 00:55
25F:→ FableKevinS:我是用phpmyadmin存的 无设定任何函数 06/06 00:55
26F:→ buganini:oh jpg的前4个byte也看不到什麽东西XD 要用6,4 06/06 00:55
27F:→ FableKevinS:出来都是乱码 06/06 00:59
28F:→ FableKevinS:我存成16位元看了 06/06 01:12
29F:→ FableKevinS:我发现php中的编码跟原图的编码不一样欸..... 06/06 01:13
30F:→ buganini:啥编码? 编码不是重点啊 那是binary的东西,我重抓了一次 06/06 01:19
31F:→ buganini:前面多了一些换行符号和空白,去掉之後看是一男一女合照 06/06 01:19
32F:→ buganini:在草地上,後面还有一群人 06/06 01:19
33F:→ FableKevinS:喔所以是多了空白? 06/06 01:20
34F:→ buganini:和换行 06/06 01:21
35F:→ buganini:确切的说是0d 0a 20也就是\r \n space 06/06 01:21
36F:→ FableKevinS:恩我debug看看 06/06 01:21
37F:→ FableKevinS:怎麽会多跑出来= = 06/06 01:23
38F:→ buganini:mysql_connect.inc.php里面跑出来的 06/06 01:24
39F:→ buganini:我直接抓mysql_connect.inc.php就获得这三个bytes 06/06 01:24
40F:→ FableKevinS:喔我在里面有写例外处理 06/06 01:25
41F:→ FableKevinS:删掉中文字and换行? 06/06 01:25
42F:→ buganini:厄 例外没发生的话应该也不会出现吧 档尾没问题吗? 06/06 01:27
43F:→ buganini:例外发生的话应该用exit;中止後续动作 也可以送个适当的 06/06 01:28
44F:→ buganini:http status code 06/06 01:28
45F:→ FableKevinS:我把连接写进去showpic好了 06/06 01:29
46F:→ FableKevinS:okㄌ= = 06/06 01:31
47F:→ FableKevinS:原来是include有问题= = 06/06 01:31
48F:→ buganini:恭喜 06/06 01:32
49F:→ FableKevinS:还是感谢bu大帮我debug 06/06 01:35
50F:→ MOONRAKER:你要很感谢他!找出这种问题短者一天两天,也可能好几周 06/06 05:29
51F:→ shadowjohn:以前写相簿也曾把图塞资料库,後来觉得效率不是很好~ 06/09 01:20