Что может привести к случайному повреждению загрузки файла (apache + PHP)?

У меня есть довольно простой PHP-скрипт, который просто берет файл изображения, загруженный через HTML-форму, и передает его непосредственно в службу облачных файлов Rackspace. Я также использую библиотеку flysystem в качестве уровня загрузки абстракций. Между ними не происходит ничего интересного (нет изменения размера или повторного сохранения изображения, просто прямая загрузка файла tmp_name, полученного с помощью метода putStream () fopen и flysystem и их адаптера Rackspace). Это работает почти все время, за исключением некоторых действительно редких случаев, когда изображение оказывается поврежденным. По какой-то причине нижняя половина загруженного изображения просто становится сплошным цветом или беспорядком пикселей (до сих пор я только дважды обнаружил эту проблему). Я попытался сравнить поврежденное изображение с исходным, и обнаружил несколько интересных моментов:

  • Размер файла между 2 точно такой же
  • Обозреватель файлов на моем ПК с Windows показывает правильный эскиз для обоих, даже для поврежденного
  • Если я сравниваю файлы с помощью шестнадцатеричного редактора, только несколько непрерывных байтов отличаются в середине файла. В первый раз это произошло, 6 байтов были разными. Во второй раз это произошло, 12 байтов были разными. Очевидно, что когда я медленно исправляю байты, он восстанавливает искаженное изображение.

Кто-нибудь знает, почему или как это может произойти? Сервер, на котором это происходит, сильно устарел (PHP 5.6.21 и Apache 2.2.15), и обновление его программного обеспечения на данный момент не является приоритетной задачей, поскольку мы будем переходить на более новое оборудование с обновленным программным обеспечением через месяц или два.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]