PHP readfile() returns 格式错误的文件
PHP readfile() returns malfomed file
从今天开始,我的网站出现了一个奇怪的问题 - 我有一个 API 调用代理网络服务器上的图像。代码:
<?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));
?>
直到今天早些时候,这一切都很好,突然间所有图像都损坏了。下载图像时 API 调用 returns 并将其与源图像进行比较,结果如下:
$ cmp -b --print-bytes original.jpg malformed.jpg
original.jpg malformed.jpg differ: byte 1, line 1 is 377 ? 12 ^J
有什么建议吗?
在@deceze 指出我应该在十六进制编辑器中检查文件后,我发现输出前添加了一个换行符。
这是由我最近添加的 PHP 文件的结束 ?>
标记后的换行符引起的。删除换行符(或 ?>
标签)解决了这个问题。
感谢您的帮助!
从今天开始,我的网站出现了一个奇怪的问题 - 我有一个 API 调用代理网络服务器上的图像。代码:
<?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));
?>
直到今天早些时候,这一切都很好,突然间所有图像都损坏了。下载图像时 API 调用 returns 并将其与源图像进行比较,结果如下:
$ cmp -b --print-bytes original.jpg malformed.jpg
original.jpg malformed.jpg differ: byte 1, line 1 is 377 ? 12 ^J
有什么建议吗?
在@deceze 指出我应该在十六进制编辑器中检查文件后,我发现输出前添加了一个换行符。
这是由我最近添加的 PHP 文件的结束 ?>
标记后的换行符引起的。删除换行符(或 ?>
标签)解决了这个问题。
感谢您的帮助!