Стандартное решение:
— Создаём форму отправки и скрытый iframe.
<form enctype=multipart/form-data action=index.php method=post name=loadavatar target=hiddenframe>
<input type=hidden name=MAX_FILE_SIZE value=64000>
<input id=avatarfile name=avatarfile type=file>
</form>
<iframe id=hiddenframe name=hiddenframe style="width:0px; height:0px; border:0px"></iframe>
Форма отправки может быть стилизована, как Вам угодно (своя кнопка отправки или выбора файла). На форме нужно обязательно расположить input [type=file] (выбор картинки) и input [name=MAX_FILE_SIZE](ограничитель размера файла). У формы target должен ссылаться на скрытый iframe (в примере hiddenframe). При отправке файла target выполнит перезагрузку (поэтому если не использовать скрытый iframe, то у нас перезагрузиться родительская страница).
Далее всё предельно просто — либо по нажатию кнопки submit, либо по вызову document.forms["loadavatar"].submit()
отправляем форму; скрытый iframe перезагружается и файл оказывается на сервере. После чего его можно запросом получить с сервера (или сразу вернуть в скрытый iframe) и отобразить.