PHP readfile()返回错误的文件

PHP readfile()返回错误的文件,php,readfile,Php,Readfile,从今天起,我的网站出现了一个奇怪的问题——我有一个API调用,它在Web服务器上代理一个图像。代码: <?php $file = $_GET["id"]; //returns the absolute path to the image $path = thumb_location($file); header('Content-Type:image/jpeg'); header('Content-Length: '.filesize($path)); readfile(realpa

从今天起,我的网站出现了一个奇怪的问题——我有一个API调用,它在Web服务器上代理一个图像。代码:

<?php
$file = $_GET["id"];

//returns the absolute path to the image
$path = thumb_location($file);

header('Content-Type:image/jpeg');
header('Content-Length: '.filesize($path));

readfile(realpath($path));
?>

有什么建议吗?

在@deceze指出我应该在十六进制编辑器中检查文件后,我发现输出前面有一个换行符。 这是由我最近添加的一个PHP文件的关闭标记
?>
后的换行符引起的。删除换行符(或
?>
标记)修复了该问题


谢谢你的帮助

尝试上传aknown良好的文件并进行测试?在十六进制编辑器中打开这两个文件并查看差异。
之前很可能有空格,请重新阅读问题,original.jpg是服务器上已知的良好文件。@deceze-发现格式错误的文件前面有0A前缀,当删除该0A时,该文件变为有效文件。这可能来自哪里?在输出之前的某个地方有一个新行(换行,空行)。
$ cmp -b --print-bytes original.jpg malformed.jpg 
original.jpg malformed.jpg differ: byte 1, line 1 is 377 ?  12 ^J