Основание вашего отключения на IP-адресе пользователя неэффективно. В дополнение к тому, что сказал Кел, клиент также может иметь динамический IP или использовать Tor.
Действительно, единственный способ - заставить пользователя как-то себя идентифицировать. Существует множество вариантов: Facebook, OpenID, Twitter и т. Д. Вы можете создать систему учетных записей для своего сайта, но это будет гораздо более неудобно для пользователя; лучше использовать уже существующую инфраструктуру.
Что касается более технической стороны вещей, в основном вы будете хранить таблицу базы данных пользователей, которые загрузили файлы, и столбец отметки времени, который содержит время, которое они загрузили. Вы будете регулярно просматривать эту таблицу с помощью задания Cron и удалять пользователей старше заданного порога.
Когда человек пытается загрузить файл, проверьте, есть ли он в базе данных. Если они есть, они не могут загрузить; если нет, то они хороши.