Вначале я чувствовал, что нужно вообще не сохранять загруженные файлы, а просто удалить их, как только будет сгенерировано изображение. Однако некоторые браузеры могут запрашивать изображение снова, когда пользователь пытается сохранить изображение - я знаю, что это верно, например, для расширения Firefox DownloadThemAll. Поэтому вам, вероятно, придется хранить файлы в течение короткого периода времени, как предлагает @JustLoren.
Быстрый поиск Google для "php delete temp files" обнаруживает хотя бы один скрипт, объясняющий, как именно удалять файлы через определенное время . Это не нужно запускать как внешний скрипт или задание cron; например, его можно просто прикрепить к сценарию загрузки.
Один недостаток в данном скрипте состоит в том, что кто-то может быстро загрузить много файлов подряд, превышая вашу дисковую квоту. Возможно, вы захотите расширить связанный скрипт, удалив все файлы старше 50 последних или сколько угодно. Для этого просто проверьте количество подходящих файлов, отсортируйте их по времени создания и удалите все файлы с индексом больше 50.