у меня так сделано на моем
сайте объявлений:
картинка грузится через скрытый фрейм. по факту успешной загрузки фрейм в основную страницу рисует инпуты с id изображения:
<input value="130006" name="thumbnail[]" type="hidden">
и идет запись информации об изображении в таблицу связи, где ID сущности, за которой закреплено изображение - стоит NULL
картинку после загрузки можно удалить - просто исключив этот input из DOM, но картинка останется на серваке - для поиска таких картинок ходит крон. он удаляет все изображения и информацию о них из таблицы связи, где ID сущности is null и время добавления картинки больше часа (ну, что бы наверняка)
после того, как сохраняется сущность в БД, в таблице связи проставляется ID сущности, т.е. идет закрепление картинок за сущностью.
+ когда я отображаю список объявлений, шаблон должен знать, есть ли у объявления изображение и сколько их.
для этого на таблице связей висит триггер, который при insert/update/delete
1. считает кол-во картинок сущности и записывает их в таблицу сущьности
2. находит картинку первую добавленную по времени и записывает информацию о ней в таблицу сущьности - это позволяет выводить список объявлений и изображение без доп запросов.
Вот
URL картинки добавленной в 10:11 и сразу же "удаленной". Часа через три её уже не будет на серваке.
все ясно?