^_^ Ok, this is just a quick tutorial, I may touch this up later.
Oh, and everything is done for free. Woot!
*********************************************
Step 1. Download the tools:
*********************************************
FileZilla Server v0.9.22 (Direct link
here)
*********************************************
Step 2. Prepare the content:
*********************************************
Create a folder in your C drive called... um... anything.
I called mine "share".
We are putting this on the C:\ drive to reduce work later, but it can be anywhere.
Feel free to put it anywhere.
You can either put stuff here, or not. Gonna do something neat later.
*********************************************
Step 3. Install the server program.
*********************************************
*********************************************
Step 4. Change firewall.
(Try not to turn it off your firewall please)
*********************************************
1. Press 'Windows Key' + 'E' to open a folder window, click the "Folders" button, and go to the control panel.
2. Click on "Windows Firewall", the "Exceptions" tab, then on "Add Program" and "Browse".

Find the folder where you installed the server, and add "FireZilla Server.exe".
3. Still in "Windows Firewall", got to the "Advance" tab, and then select the network connection you use to get online (Most likely "Local Area Connection"). Click on Settings.
4. In this new popup, turn on "FTP Server", then click OK until your out of menus.
*********************************************
Step 5. Set up FileZilla!
*********************************************
1. Go to where you installed the program, run it, and click on Edit and then Settings.
2. Under "General Settings" Change the "Listen on these ports" to any value you want, just something you can remember.

(Optional) Click "Welcome Message" under "General Settings" to give a custom message to anyone who logs into your server using an FTP client.
3. Here, you have two ways to go... If this is just a temporary thing, or something for one or two people, just create an account under the user settings (Step 4). However, if you want more control, try this:
3.a. Go to "Edit" and "Groups".
3.b. Click the "add" button to add a Group Profile. Anyone with this profile gets acted upon the same way.
3.c. Select the account you want to alter, then click on "Shared Folders" on the left. You can now add folders that that particular group of people can see or not, and for each folder you can control what they can do: write, edit, delete etc.

You can set what folder is "home", or the first one they see. To add folders to "home" without copying and pasting stuff, you can right click on any of the folders you added and choose "Edit Aliases".

So for example, if you had a home of "C:\Share", you would make an alias of "C:\Share\myfolder". Now, your folder will show up in share, without copying or taking up more hard drive.
Look through these things some day.
4. Make user accounts.
Click on "Edit", and then "User". To allow ANYONE to access your shares without a password, and without an explicit name, you can create a new account called "Anonymous" with no password. I like doing this, but don't give them much power... DEFIANTLY not the ability to delete or edit.
When you create your accounts, under "General" you can choose from a drop down of all Groups you made. ^_^ This can save you a lot of work, by making a group called default, and adding extra folders and abilities to the ones they already have rather than remaking all the shared folders again. I personally created an account with name/password of s34, and I created a folder that those users can add, delete, or anything to. Probably not wise, but meh.
*********************************************
Step 6. Use your server!
*********************************************
To access your server you need to know four things.
1. What is your IP address? Go to
whatismyip to find out what your ip is. Or anywhere, really.
2. What port is my server looking on? (You set this earlier, step 5.2)
3. What user name do you want to login to?
4. What is the password for that user?
Once you know that, you can either use a ftp client (Like filezilla's
here) or any web browser to access your data (Although you need a ftp client to upload data, assuming you have permission from the server you made).
Lets assume my ip is : 123.2.32.100
Lets assume my port is : 2342
Lets assume my name is : test
Lets assume my pass is : cheese
The url you would put in your browser would be:
ftp://test:cheese@123.2.32.100:2342/
If it says it can not connect, it is probably because your firewall is messed up.
If you don't want to do all this each time, you can create a user with name "Anonymous" and no password. If you do this, you can input:
ftp://123.2.32.100:2342/
If you don't want to put in the port, just change your port number in step 5.2 to any (I think, haven't tried this.)
I personally like only letting them in on one port, as well as forcing passwords. If you input
ftp://123.2.32.100:2342/ and there is no anonymous account, it will ask for name and password. You won't get in without it. Please do not choose cheese as a password.
*********************************************
*********************************************
********************************************* So what can you do with this? WHY do this?
*********************************************
*********************************************
*********************************************
Since this is a server, YOUR server, there are no size restrictions and no worries. Please do not host illegal things, and if you ignore me, PLEASE make sure you need a name and password to see them. Please.
I am doing this so that you can dvd's of pictures and family movies (Like my dad) and so that you can turn some old computer in the closet into a server everyone in the hose can upload to for later.
Other ideas for this:
~An online backup of important documents, work files, etc, that you can not trust to outsiders.
~A way to make packages you can take to other places (Like your home, or a friends house), and more!
~Easily keep one copy of work documents that everyone can access, and then they submit suggested changes to a second folder that they have write access to...
~If you have a tv recorder, access your shows all over the house without copying them multiple times...
~more, I am sure.
No-IP - Dynamic DNS, Static DNS for Your Dynamic IP
*********************
Method to get around dynamic IP's, etc:
Suggested by jcoolkatzerg:
No-Ip.org ~ Allows you to create a free account that redirects to your computer.
*********************
Other FTP programs for other OS's
Mac:
PureFTPd Manager
Linux:
PureFTPd Manager,
ProFTPd
Unix:
PureFTPd Manager,
ProFTPd
Vista:
FastreamIQ,
Fastream NETfile
XP:
Cerberus FTP Server Wikipedia list of FTP servers
*******************
Other programs for accessing your computer online free:
Maxthon Access
^_^ I hope someone found this useful! Sorry for all the pictures.