使用readfile和file_get_contents损坏的映像

时间:2011-05-04 00:10:14

标签: php image file-get-contents readfile

我正在尝试使用一个函数来实现这个功能:

<img src='login.php?image=ind_legend.jpg'>

但是我无法通过函数来​​放置图像。我回过头几步,只尝试了这部分代码:

<?php
$file = "http://localhost/sales/test.jpg";
header('Content-type: image/jpeg');
readfile($file);
?>

或使用此功能:

echo file_get_contents($source);

但事实是,我唯一得到的是破解图像交叉(IE)或在Firefox中没有。

我很感激任何建议

提前致谢

4 个答案:

答案 0 :(得分:11)

readfile()

之前使用php的 ob_clean()函数

答案 1 :(得分:5)

您的PHP脚本中肯定有一些空格,或<?php开场标记之前隐藏UTF-8 BOM空格。使用hexeditor查找。

要进一步调试,请直接在浏览器中打开图片网址http://localhost/login.php?image=ind_legend.jpg,然后保存文件。然后将其与原始JPEG进行比较。

答案 2 :(得分:2)

如前所述,您可能有一些空白。我尝试用下面的代码替换整个文件。删除关闭的php语句消除了有额外空格的可能性:

<?php
$file = "http://localhost/sales/test.jpg";
header('Content-type: image/jpeg');
readfile($file);

答案 3 :(得分:0)

首先将浏览器指向http://youraddress/login.php?image=ind_legend.jpg并检查结果。

可能文件/sales/test.jpg已损坏,或者您没有为readline启用http://包装

最后通过保存图像将损坏的图像保存为您选择的浏览器的上下文菜单选项,并尝试使用文本编辑器打开它。如果您发现错误消息(如果已启用它们),我不会感到惊讶。