What can cause a file upload (apache + PHP) to be corrupted randomly?












0














I have what I think is a fairly simple PHP script that just takes in an image file uploaded via an HTML form and pushes it directly to Rackspace's Cloud Files service. I also use the flysystem library as my upload abstraction layer. Nothing interesting happens in between (no image resizing or re-saving, just a straight upload of the tmp_name file received using fopen and flysystem's putStream() method and their Rackspace adapter). This works pretty much all the time except for some really rare instances where the image ends up being corrupted. For some reason, the bottom half of an uploaded image just becomes a solid color or a mess of pixels (so far, I have only caught this issue twice). I tried comparing a corrupted image to the original one and I found some interesting points:




  • File size between the 2 is exactly the same

  • My Windows PC's file explorer shows the correct thumbnail for both, even for the corrupted one

  • If I compare the files with a hex editor, only a handful of continuous bytes are different near the middle of the file. The first time this happened, 6 bytes were different. The second time this happened, 12 bytes were different. Obviously, as I slowly correct the bytes, it restores the corrupted image.


Would anyone have any idea why or how such a thing would occur? The server this happens on is quite outdated (PHP 5.6.21 and Apache 2.2.15) and updating it's software isn't a priority at the moment as we will be switching to newer hardware with updated software in a month or 2.










share|improve this question



























    0














    I have what I think is a fairly simple PHP script that just takes in an image file uploaded via an HTML form and pushes it directly to Rackspace's Cloud Files service. I also use the flysystem library as my upload abstraction layer. Nothing interesting happens in between (no image resizing or re-saving, just a straight upload of the tmp_name file received using fopen and flysystem's putStream() method and their Rackspace adapter). This works pretty much all the time except for some really rare instances where the image ends up being corrupted. For some reason, the bottom half of an uploaded image just becomes a solid color or a mess of pixels (so far, I have only caught this issue twice). I tried comparing a corrupted image to the original one and I found some interesting points:




    • File size between the 2 is exactly the same

    • My Windows PC's file explorer shows the correct thumbnail for both, even for the corrupted one

    • If I compare the files with a hex editor, only a handful of continuous bytes are different near the middle of the file. The first time this happened, 6 bytes were different. The second time this happened, 12 bytes were different. Obviously, as I slowly correct the bytes, it restores the corrupted image.


    Would anyone have any idea why or how such a thing would occur? The server this happens on is quite outdated (PHP 5.6.21 and Apache 2.2.15) and updating it's software isn't a priority at the moment as we will be switching to newer hardware with updated software in a month or 2.










    share|improve this question

























      0












      0








      0







      I have what I think is a fairly simple PHP script that just takes in an image file uploaded via an HTML form and pushes it directly to Rackspace's Cloud Files service. I also use the flysystem library as my upload abstraction layer. Nothing interesting happens in between (no image resizing or re-saving, just a straight upload of the tmp_name file received using fopen and flysystem's putStream() method and their Rackspace adapter). This works pretty much all the time except for some really rare instances where the image ends up being corrupted. For some reason, the bottom half of an uploaded image just becomes a solid color or a mess of pixels (so far, I have only caught this issue twice). I tried comparing a corrupted image to the original one and I found some interesting points:




      • File size between the 2 is exactly the same

      • My Windows PC's file explorer shows the correct thumbnail for both, even for the corrupted one

      • If I compare the files with a hex editor, only a handful of continuous bytes are different near the middle of the file. The first time this happened, 6 bytes were different. The second time this happened, 12 bytes were different. Obviously, as I slowly correct the bytes, it restores the corrupted image.


      Would anyone have any idea why or how such a thing would occur? The server this happens on is quite outdated (PHP 5.6.21 and Apache 2.2.15) and updating it's software isn't a priority at the moment as we will be switching to newer hardware with updated software in a month or 2.










      share|improve this question













      I have what I think is a fairly simple PHP script that just takes in an image file uploaded via an HTML form and pushes it directly to Rackspace's Cloud Files service. I also use the flysystem library as my upload abstraction layer. Nothing interesting happens in between (no image resizing or re-saving, just a straight upload of the tmp_name file received using fopen and flysystem's putStream() method and their Rackspace adapter). This works pretty much all the time except for some really rare instances where the image ends up being corrupted. For some reason, the bottom half of an uploaded image just becomes a solid color or a mess of pixels (so far, I have only caught this issue twice). I tried comparing a corrupted image to the original one and I found some interesting points:




      • File size between the 2 is exactly the same

      • My Windows PC's file explorer shows the correct thumbnail for both, even for the corrupted one

      • If I compare the files with a hex editor, only a handful of continuous bytes are different near the middle of the file. The first time this happened, 6 bytes were different. The second time this happened, 12 bytes were different. Obviously, as I slowly correct the bytes, it restores the corrupted image.


      Would anyone have any idea why or how such a thing would occur? The server this happens on is quite outdated (PHP 5.6.21 and Apache 2.2.15) and updating it's software isn't a priority at the moment as we will be switching to newer hardware with updated software in a month or 2.







      php apache file-upload flysystem rackspace-cloudfiles






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 21 at 1:27









      georaldc

      1,3461117




      1,3461117





























          active

          oldest

          votes











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53404040%2fwhat-can-cause-a-file-upload-apache-php-to-be-corrupted-randomly%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown






























          active

          oldest

          votes













          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes
















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.





          Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


          Please pay close attention to the following guidance:


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53404040%2fwhat-can-cause-a-file-upload-apache-php-to-be-corrupted-randomly%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Wiesbaden

          To store a contact into the json file from server.js file using a class in NodeJS

          Marschland