Media Content disapeared after upgrade WP core to 3.5.1

premise :

I am not so sure as to the exact reason of your problem, but after the
comments, and considering a normal “user” level of coding expertise, I
post this answer describing not the ultimate solution, but the steps
that I myself would have considered when facing a similar problem.
There might be better approaches and I would love to hear them, but
like I said, I am posting this as an option to a normal user without
coding or debugging capabilities.

Strangely enough , yesterday , while commenting to you , a similar thing happened to me on localhost .
After a short investigation, I found out that one of my DB tables (wp_posts) was damaged (first time in 6 years of WP´ing ) .

enter image description here
enter image description here

The symptoms were :

  • All attachments gone (but still on server).
  • Can not publish new posts ( only submit to preview )
  • Can not attache new images

AS the symptoms might differ from yours , and so does the recovery , It still leads me to think that you have some damaged DB table ..

So, in order to fix this , you can do one of three things :

1 – Reinstall your website completely including DB

That depends on how much content you have on the website and on how much time you want to invest in total recovery.

you will essentially need to Copy and paste , upload all images , create new categories and posts . No import is suggested since we are talking about DAMAGED tables where the information relations themselves are damaged .

2 – Trying to RESTORE the damaged table .

GO into your PhpMyadmin, and goto YourDB–>structure
then flag your tables (maybe one by one ) and choose "restore"

enter image description here

3 – Try to handle the visible symptom of lost attachments only while ignoring other possible yet-to-be-discovered problems :

While it would be the less recommended for me , it might be the first try for someone with a lot of content and little time .

In that case, I believe your easiest option would be to try to reload all the images . But there is a catch.
If you will upload them AGAIN to the same uploads folder wordpress will try to avoid conflict naming and will rename them with sequential numbers ( eg. image.jpg will be uploaded like image1.jpg etc …) which will cause them not to be recognized as the original inserted images ..

So you need to BACKUP you uploads folder to another location, and then DELETE all the images from the wp-content/uploads folder .
At this point , you need to UPLOAD them again from the backup folder , and attach. (thus maintaining the same names )

You could :

  • Do it manually on each post (but if you choose this option, it is
    already better to choose recovery option NO.1. )
  • Use some plugins like add-from-server and then another one like
    unattach-and-re-attach to resolve the problem.
  • depending on how automated your site is , and how it is coded , you
    have a third option of attaching all the images only to ONE post in
    order to “uplaod” them and assign GUID , and then they will be recognizable again as
    inserted images , but this option is reserved to someone who knows
    the code well and can handle automattic assignment of post thumbnails
    and featured images etc ..

Note that in order to maintain the same names , you will have to upload only the ORIGINAL sizes and not the custom sizes (meaning image.jpg and not image-800x600.jpg )

Making a long story short , There is no easy solution as far as I can see for such a problem , but to prevent it in the future , regularly backup of your DB is always a good advice.

WILD GUESS EDIT Also , in the comments you said that you have deleted a user and then “restored” posts from the DB . This can be also the root of the problem, although hard to confirm.

In this case what you will need to do is something like this :

UPDATE wp_posts SET post_author=NEW_AUTHOR_ID WHERE post_author=OLD_AUTHOR_ID;

But next time, when you delete a user, make sure that you assign all the posts to another user before deleting it .