PHP导致文件下载格式错误

时间:2015-11-14 01:49:24

标签: php utf-8 stream iis-7.5

情况非常简单:

PHP 5.3.2被用作处理(混淆)服务器上某些静态文件的中介。这个过程已经存在了一段时间(1 - 2年)。最近(最近几天),一些文件的EOF标记被截断/格式错误。在某些情况下,这些文件本身在一年或两年内没有改变。

我尝试过:

readfile()file_get_contents, 和 fopen(), fread(), fclose()进程

直接链接到服务器上的文件,在没有PHP处理的情况下下载,并且维护它们的EOF(特别是%%EOF)。

但是,在PHP处理它们并将它们发送到客户端之后,%%EOF变为%%E,并且该文件被其原生应用程序视为已损坏。丢失的剩余部分是4096块(通常约3.1kb)的一部分

对我来说,这说明流过早地终止,其余的字节永远不会从缓冲区中消失 - 但是我尝试过的所有内容似乎仍然将这些字体留在文件的末尾。

一些环境信息:

文件是UTF-8,PHP ini的默认编码设置为UTF-8,php在处理过程中检测到文件的utf-8编码,流chunksize没有被更改(4096),gzip通过IIS而不是PHP模块。

并非所有通过此过程获取的文件都会受到此错误的影响。检查文件的沉着,大小,创建日期等。失败文件之间似乎没有任何真正的共性。传递的文件和损坏的文件之间也没有可区别的特征

提前致谢

0 个答案:

没有答案