There are two methods for sending data from the client (Internet browsers) to a web (HHTP) server. These are 'GET' and 'POST'. 'GET' method sends the data in the URL (You may have notices the URL of sites like this site, which has a lot of variables) these are the variables sent with 'GET' method. The problem is you can't send larger volumes of data. In this case you can use 'POST', which sends large amounts of data in subsequent packets. So you can upload a file using this.
Note that the packet sent with 'POST' will not necessarily arrive at the server with a right sequence. So you should order them when they are received. Alos you can use third-party upload tools, or you can Microsoft Posting Acceptor, which can be installed from BackOffice Installation program included in Visual Studio Disc 2.