Sharing files is the core of what the internet is and having to rely on a server with data caps, bandwidth limits, dropping connections, temporary file hosting, or worse, privacy invasion is the last thing you want. If you want to send a nice family vactation photo to grandma or a totally legal song to your friend, usually you have to rely on the physical methods or someone else's service, but its the modern world and that is not needed. We can transfer files with ease using a couple different programs. Though, this tutorial will be focusing more on Unix-like operating systems, but all of these have some version for NT/DOS enviroments, but you should do your own research for that one.
File Transfering methods
BitTorrent (With Transmission)
BitTorrent (or torrenting) is a method of file sharing where seeders (people who have the file) supply leechers (those without the file) with a copy of the file via peer-to-peer means. Leachers become seeders once they have 100% of the file and still upload to other leechers when they don't have it all. Its a great method to proliferate. So long as someone has a copy of it and the torrent/magnet link is out there, it can be downloaded. This makes it great for the proliferation of media that people want to suppress the spread of as it would take a massive effort to remove every last seeder (or possible seeder) from being able to access the torrent. If you are purely interested in the sustained existance of media or mass proliferation, its still great as no one needs to "host" the media per-say and the media that someone wants to share will likely always have a seeder. A great place to start with this form of file transfering is Transmission, a libre, easy-to-use torrenting client for almost every platform. To find torrents, you can use torrent aggregation software such as Jacket or magnetco, use websites focused on providing magnet links, or just get a magnet-link/torrent file from a friend, family member, or other such person. The only issues that exists with this method of file transfer is that someone has to port-forward (or be in active mode) to properly distribute the torrent as those who do not port forward cannot actively contact other peers for the files, only be contacted to send/recieve files. This gets worse if you are interested in piracy and need a VPN/proxy (as most ISPs are hostile to BitTorrent traffic due to some of the content's illegal, copyrighted nature). Most VPN/proxy providers do not offer portforwarding in an easy way.
Tor (With Onionshare)
Tor and the Tor Browser Bundle is an anonymous network relay that most people know about for "le dark web", but is mostly used for anonymous communications, document uploading, circumvention of government internet blockades, amoung other uses. In this case, Tor will be used to anonymously host files. You can use a program called onionshare to host the file from your computer or even a website. This isn't inherently illegal so long as what you are sharing is not illegal. This can be done via gui or command line. Via gui it is a simple drag and drop, via command line it is as simple as typing in onionshare and then the file/folder you want to share. The only drawbacks is the end recipient must have something that can access tor (such as a tor enabled browser) to access the content. Besides that, its a quality way to host content that really just works.
Wormhole (with Magic Wormhole)
Wormhole was designed to be used over communications to easily submit files to one another. Its simple and easy to use, but is command line only. Installing is simple for anyone who knows how to use a package manager. Specific tutorials are provided here. As a general rule, if you can have pip on your computer, you can install it. Its simple as telling wormhole to send a file or directory, getting the passphrase provided, telling that to the recipient, and then they type in wormhole recieve [key goes here]. Its dead simple transfering that uses python magic to make it happen. Great for just sending some stuff to friends.