【发布时间】:2012-04-16 06:36:00
【问题描述】:
我在 Ubuntu 上使用 Apache 2 运行 PHP 5.2。
当我想从硬编码的 PHP 文件(使用$imgname)中提供 PNG 文件时,我可以成功。但是,如果我将 $imgname 更改为 $imgdbname,浏览器会失败并说它不是有效的 PNG 文件。
$imgname = "cachepics/c3s9taopkp.png";
$imgdbname = readfromdb();
header("Content-type: image/png");
print file_get_contents($imgname);
但是,如果我评论 header("Content-type: image/png"); 行,浏览器在这两种情况下都会显示所有 PNG 垃圾文本。因此,我确信 PHP 实例能够通过从 DB 读取路径来访问该文件。
输出
print "-".$imgname."-".$imgdbname."-";
看起来完全一样。
-cachepics/c3s9taopkp.png-cachepics/c3s9taopkp.png-
我会发疯,不知道为什么db版本不起作用。
【问题讨论】:
-
readfromdb函数是什么样的?它是返回字符串还是回显它? -
它读取数据库并返回路径。 $imgdbname = $imgname = cachepics/c3s9taopkp.png
-
如果在
$imgname和$imgdbname中都存储了相同的字符串,那么它应该可以工作。尝试var_dump($imgname); var_dump($imgdbname);之类的方法来验证它们是否完全相同。
标签: php mysql image-processing png imagemagick