My WordPress network site stopped displaying uploaded images. I finally found something that works, though it is a lame “solution” in my opinion.
I found this advice and it worked for me. Insert the following in wp-includes/ms-files.php
adding ob_clean() before the readfile in ms-files.php
So you end up with:
// If we made it this far, just serve the file ob_clean(); readfile( $file ); ?>
Caching seemed to make the images “disappear” slowly (they didn’t all go at once and using different browsers they “disappeared” at different times). So when I fixed it they “reappeared” at different times (it seemed like cached ones stayed disappeared for awhile).
The advice mentions the image files being seen as “corrupted.” The files seem unlikely to actually be “corrupt” because these are images that worked for years and then all of a sudden every image for the sites “disappeared” (wouldn’t be displayed). I suppose it is possible the are corrupt in some detailed way and some update no longer allowed some previous “lax” checking to allow the non-compliant files but it seems more likely that some of thing has gone wrong (but somehow ob_clean takes care of it).
Related: WordPress error: Image could not be processed. Please go back and try again. – Overcoming Conflicts Multiple Blog WordPress Network on One Server – Bash Profile Adjustments, Scrolling History