What is "up" or "down" about it? I mean, geographically it makes no sense. I can upload images, and download images - the former is away from my computer and the later is coming to it but why "up" and "down"?
It is the same concept as upstream and downstream in a river.
Heading upstream is heading toward the source of a river. Heading downstream is heading away from the source.
If you consider a computer server to be the source of a river: uploading is sending something up to the server (upstream to the source); downloading is pulling something down from the server (downstream from the source).
Alternatively, some people prefer to consider the stream bi-directional because this represents a closer picture to the truth.
In this metaphor, whoever is serving the file represents the upstream side, and whoever is receiving the file represents the downstream side.
Hence, when you download you are standing downstream waiting for the file to come down from the river's source (the server). And, when you upload, you become an ersatz server and the actual server now becomes the downloader. So, you are now the upstream, and the server is the downstream.
Regardless of which way you view things, Up and Down continue to agree directionally.
Uploading originally meant loading up a cart, trailer, truck, etc. with items. In this sense it is of 19th century origin. As the OED cites:
Like many terms in computing (such as computer itself), a term from the physical world was applied to the task of putting data from one machine unto another, especially when the destination was larger or more significant in some way (which was often the case with client-server systems, especially in the 70s or earlier when the term came into use in this sense). Hence uploading files was compared with uploading goods.
Download was then the obvious antonym.
Like quite a few metaphors used in computing (again, like computer itself), the word is now rare in its original sense, and almost only used in the computing sense.
I'd say this has to do with how hierarchies are traditionally drawn in IT (and pretty much everywhere) - the root/superior is at the top, the leaves/subordinates are at the bottom. It works the same way when drawing a schematic image of the network. You have the internet (with its servers) on top, then the local network beneath it (rooted at the router), and the client computer (the endpoint) at the very bottom.
This way, uploading and downloading corresponds to moving data up and down this diagram.
In computer programming stream is a very common term and describes way of exchanging data: one by one, in a specific order, first in - last out, no swapping (like a queue), and if something went through, there is no way to go back to it, no way to rewind and read it again.
This is the way files are transmitted via HTTP. Parties are connected by a stream, so we call upstream where the server is and downstream where the user is (the most common direction of transmision).
Hence upload - pushing files upstream, download - pushing files downstream.
from the OED: "To transfer (data, etc.) from one computer or device to another (esp. to one that is larger or remote from the user, or is functioning as a server). Cf. download v."
from the American English Dictionary: "the action or process of transferring data to another computer system."
additionally: in the days before the web and the internet and social networks and cloud computing and PCs (or Macs) or tablets, phablets and smartphones, a person usually used a terminal connected to a huge server that might be connected to another gargantuan server. so up is a matter of size or cost -- as in upscale. so up is big, down is smaller; up is also higher up in the hierarchy of machines; down is where the servant machines (terminals, printers, modems, routers, etc., are.
does that make sense?