![](/img/trans.png)
[英]How to stream an HTTP file upload without the Content-Length header?
[英]HTTP Content-Length header has 1 byte too many
我正在编写一个(PHP)脚本,为客户端提供文件。 其中,Content-Length header 被发送,只是它有一个字节太多。 当我将内容长度放在不同的 header 中时,我发现了这一点,并比较了两者:
$filesize = filesize($file);
header('Content-Length: ' . $filesize);
header('X-Content-Length: ' . $filesize);
结果:
Content-Length: 3481
X-Content-Length: 3480
即使将3480
硬编码到header()
function 中,结果也是如此。 我怀疑 Apache 对我的标题这样做。
这可能是什么原因造成的?
编辑:给出一些上下文:我认为 Zend Framework 导致了这个:我正在将当前正在生产(和工作)的代码重构到出现问题的 ZF。 当我在 ZF 之外尝试这段代码时,一切都很好。 也许 ZF 正在做 output 缓冲,并重新发送标头本身或其他东西,但我不太了解 ZF。
这不是 Apache 做的,而是 PHP 开放标记与 output 缓冲组合之前的一个空格。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.