以下PHP代码段导致内部500错误,我认为它是一个或多个标头。我已启用错误报告,但它没有报告任何内容。有人可以看到问题可能是什么?谢谢。导致内部500错误的PHP标头函数
$file = CLIENTFOLDERS.$_GET['download'];
$fileSize = filesize($file);
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$type = finfo_file($finfo, $file);
finfo_close($finfo);
header("Cache-Control: private");
header("Content-Type: ".$type);
header("Content-Length: ".$fileSize);
header("Content-Disposition: attachment; filename=".basename($file));
readfile($file);
exit();
奇怪的是,文件下载和我得到的响应头回:
Cache-Control:private
Connection:Keep-Alive
Content-Disposition:attachment; filename=CPS Letterhead form.doc
Content-Length:4
Content-Type:application/msword
Date:Mon, 10 Feb 2014 20:21:00 GMT
Expires:Thu, 19 Nov 1981 08:52:00 GMT
Keep-Alive:timeout=5, max=100
Pragma:no-cache
Server:Apache/2.4.7 (Win32) PHP/5.5.6
X-Powered-By:PHP/5.5.6
但MS Word和Excel文档被破坏。 PDF和文本文件加载正常。没有检查图像文件。
最有可能不是头,认为它可能是,如果'$ type'没有返回任何东西。检查服务器日志。 – Cfreak
'var_dump($ type)'? – Hast
PHP版本5.3.0或更高版本? – 2014-02-10 19:57:04