I'll start with a simple authentication system.
You ask the user for his login/password, that you send to your server. In the server, you hash the password to compare it to the database (I won't talk here about the importance of hashing a password and using salt & pepper).
No, using a non encrypted (SSL) connection, someone between your user and your server can read the transmitted data (known as Man In The Middle attack) and know your user password.
For that, you can use a SSL connection to protect your user from being read while sending data to the server. It's the best secured way so far (again, I won't talk about the limitation of SSL here).
But an other alternative can be made. You can hash the password using md5/sha directly in your user's browser and send you the hash. Some Javascript libraries exist for that. But you need to remember that not all your users will have javascript enabled (except you force them to use it). Moreover, using this method, you won't be able to add a salt and pepper without compromising the overall security.
Moreover, don't forget that this won't protect you agains't keylogger, trojan and others. Just MitM attacks.
Now, for the file upload. The default file upload of the browsers, I mean <input type="file" /> won't send data encrypted. If you want to do so, you'll have to implement a Java or Flash system for uploading file that will encrypt the data before sending them to the network. Again, this won't protect your users if they have a virus on their computer.
Remember that the ideology between client <-> server is their relation between them. You can't protect your user from having viruses, you can only improve the security in the link between client <-> server and also your server.
Now, if you want to protect your server for malicious code upload, enabling security in the client side will be useless. You can't never trust what users sends you. Even if you build the most sophisticated html application, someone will be able to send you data without using this app.
All you have to do is improve security in your server side : checking if the file sent is the correct type by checking it's mimetype (with the right tool, not only the extension!). Always refuse files that can be executed (.exe, .sh, etc) and more over, be sure on what to do with those files. (You can allow upload of .php files, but you must put them on a directory where they can't be executed from a remote location!)