什么会导致文件上传(Apache + PHP)随机损坏?

时间:2018-11-21 01:27:05

标签: php apache file-upload flysystem rackspace-cloudfiles

我有一个相当简单的PHP脚本,它只接收通过HTML表单上传的图像文件,并将其直接推送到Rackspace的Cloud Files服务。我还使用flysystem库作为我的上传抽象层。两者之间没有任何有趣的事情(不调整图像大小或重新保存图像,仅使用fopen和flysystem的putStream()方法及其Rackspace适配器直接上传了tmp_name文件)。除了在某些情况下图像最终损坏的非常罕见的情况之外,这几乎一直都有效。由于某种原因,上载图像的下半部分变成纯色或一堆像素(到目前为止,我只遇到了两次此问题)。我尝试将损坏的图像与原始图像进行比较,发现一些有趣的地方:

  • 两个文件之间的文件大小完全相同
  • 我的Windows PC的文件浏览器显示了正确的缩略图,即使是损坏的缩略图也是如此
  • 如果我使用十六进制编辑器比较文件,则文件中间附近只有少数几个连续字节是不同的。第一次发生这种情况是6个字节不同。第二次发生这种情况,有12个字节不同。显然,当我慢慢纠正字节时,它会还原损坏的图像。

有人会知道为什么会发生这样的事情吗?发生这种情况的服务器已经过时了(PHP 5.6.21和Apache 2.2.15),当前不将其软件更新作为优先事项,因为我们将在一个月或2个月内切换到具有更新软件的较新硬件。 >

0 个答案:

没有答案