Юзер заходит на сайт создается сессия и одноименный файл. Как определить что юзер закрыл страницу в своем браузере т.е. ушел с сайта - чтобы можно было удалить этот файл.
Никак нельзя это. Только если прявязать файл к сессии и проверять жива ли сессия. Обычно она дохнет после закрытия всех окон и табов.
Сессия живет столько, сколько ей приказано жить при инициализации. Когда закрывается браузер, теряется SID сессии, привязаный к ссылкам и формам, либо, скорее всего, куки, с SID сессии.
А если повесить на <body onunload=""> отправку запроса серверу с именем удаляемого файла ? (ну или как-то по другому получить имя, не принципиально) В даном случае можно SID передать.
ИМХО проще кроном раз в определенный промежуток времени чистить лишние файлы, записи в БД and etc. Нечего за каждым пользователем в отдельности следить(в данной случае).