You need an SQL server like mySQL
whenever someone uploads file, generate random name, rename it and add information of link, filename, tags, time of upload, user who uploaded etc, ip address of user in sql database. When someone accesses the file, it should be looked up in the database and link should be redirected. You can also keep count how many times a file has been viewed and limit bandwidth accordingly. You can delete the file after certain number of days it was uploaded. Its a game of how you utilize SQL.
for example someone uploads 1.jpg
u generate random unique name bbcder.jpg (checking for duplicates in sql db)
put file as hxxp://files.imagehost.com/db1/bbcder.jpg
tell user link is hxxp://www.imagehost.com/fetch.php?file=bbcder.jpg
PHP and mySQL are perfect for this. But you may also want ASP.net and MS SQL server
Edit: neutralized fake links
Edited by Romeo29, 01 July 2009 - 09:14 AM.