The thing i mostly do from local to hoster is...
First i install and make a site complete working local with all the extra's i want.
then i backup the db on my local machine.
install a clean ss in the hoster (i prefer normally the same ss version as installed on the local machine, but a newer version is normally no problem).
After installation i download the mysite/_config.php and modify it with my extra's, upload it again and overwrite.
Then upload with ftp (filezilla):
upload my template and other modifications (exept my _config.php wich i allready modified)
Upload the modules
then upload the folder assets with all the images and files
then i set (so i'm sure) the assets folder to chmod 755 (or 777 for some servers) and all files included
Then i import the exported (local) db via phpMyAdmin
run an dev/build?flush=1
and (most of the time) it all works and have moved the site from local to hoster.
If i just need to import lots of images i upload them with filezilla ftp and in files and images i check for new files and wait a while till the list gives me a notice ... files added and ... files removed.
Hope this helps.