【发布时间】:2014-02-06 08:57:36
【问题描述】:
<?php
ob_clean();
header('Content-Type: image/jpeg');
header('Content-Length: ' . filesize($file));
$file = '111111-11111.jpg';
$handle = fopen($file, "r");
echo file_get_contents($file);
?>
在某一时刻,我的 php 网页停止显示我已成功上传到 MySQL 数据库的所有图像。我想深入了解这个问题的根源,看看它是否可以输出存储在 HDD 上的 .jpg 图像,而我得到的输出与我尝试从数据库访问此图像时的输出相同:
图像 [...] 无法显示,因为它包含错误。
图像位置正确,标头前没有空格,输出缓冲区已清理。我花了几天时间在谷歌上寻找答案,但没有运气。
我对 PHP 很陌生,所以如果你能提供帮助,请尽可能描述性,以便我能理解。 提前谢谢你。
【问题讨论】:
-
您是否检查了 error_log 是否有任何 PHP 错误,可能是基于权限的?此外,您不需要
$handle = ...行,因为您没有使用它 -
检查页面的原始输出。流中可能有一些错误。使用
ini_set('display_errors', 0);禁用它。 -
另外,在使用
file_get_contents()之前,您不需要fopen()文件。