What can cause a file upload (apache + PHP) to be corrupted randomly?
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
add a comment |
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
add a comment |
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
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
php apache file-upload flysystem rackspace-cloudfiles
asked Nov 21 at 1:27
georaldc
1,3461117
1,3461117
add a comment |
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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