I had this isse: I fixed it by checking where my host had installed the wordpress program. It had placed TWO installations in my folders: one in HOME and one in HOME/public_html.
Only the installation in public_html/ is accurate and THAT is where you need to be uploading the files under public_html/wp-content/themes/
if you put them in wp-content/themes without making sure you are in public_html, you will have this problem.
Make sure that you are in the RIGHT directory (trust me, go make sure) Make sure your files are not nested, and make sure they are at 755, and you will see them.
This is a danger, apparently, of having your host install WordPress for you. beware the double install and don’t let it screw you up.