PHP 手册有这个例子:
<?php
// open the file in a binary mode
$name = './img/ok.png';
$fp = fopen($name, 'rb');
// send the right headers
header("Content-Type: image/png");
header("Content-Length: " . filesize($name));
// dump the picture and stop the script
fpassthru($fp);
exit;
?>
要点是您必须发送内容类型标头。此外,必须小心,不要在文件中的标签之前或之后包含任何额外的空格(如换行符)。<?php ... ?>
如注释中所示,您可以通过省略标记来避免脚本末尾出现额外空白的危险:?>
<?php
$name = './img/ok.png';
$fp = fopen($name, 'rb');
header("Content-Type: image/png");
header("Content-Length: " . filesize($name));
fpassthru($fp);
您仍然需要小心避免在脚本顶部留出空格。一种特别棘手的空白形式是 UTF-8 BOM。为避免这种情况,请确保将脚本另存为“ANSI”(记事本)或“ASCII”或“不带签名的 UTF-8”(Emacs)或类似内容。