This app was mentioned in 2 comments, with an average of 1.50 upvotes
Personally I use ownCloud with the oCloud.de app for android. You could use a samba share, but make sure you don't expose it to the internet (it's horribly insecure O.o).
I'll assume you don't have IPv6.
The exact steps you'll take depends on your OS. Linux would be the easiest one to use in this instance.
For all OSes though, the basic process is to configure a service on the server, and then change your route settings to forward requests on the appropriate port to the server. This assumes that the server has a static IP.
At this point, you'd be able to connect to the server using your public ip address. If you don't have a static IP address though (which you probably won't have), this will be subject to change.
A better solution would be to purchase a domain name and then utilise a dynamic DNS service to automatically update the IP address that the domain name points to as your IP address changes.
Firstly: What OS are you using?
Secondly: Which would you like to set up? ownCloud which you can connect to on your phone with ocloud24 for example, or a windows file share, which you could connect to using ES File Explorer?