Разбить задачу на несколько этапов:
1) Принимать загружаемый файл от пользователя.
2) Проверять, что этот файл является изображением и его размер не выше допустимого (если выше - то либо отклонять загрузку и сообщать пользователю об ошибке, либо уменьшать размер и сохранять изменённый файл).
3) Если пункт 2 пройден успешно - сохранить этот загруженный файл на диск.
4) Если пункт 3 пройден успешно - установить для пользователя, который загружал этот файл, дополнительное поле (с именем userpic, к примеру), указывающее на имя файла, который был сохранён в предыдущем пункте. Предыдущее значение этого поля запомнить для последующего шага.
5) Если пункт 4 выполнен успешно - удалить с диска файл с предыдущим аватаром пользователя. Если с ошибкой - то удалить с диска новый загруженный файл, оставить старый.
6) Отписать пользователю о том, что аватар сменён, либо что не сменён, в зависимости от результата.