При помощи HTML-форм можно загружать файлы на web-сервер, и РНР полностью поддерживает этот механизм. Для этого используется специальный тип формы с типом данных «multipart/form-data»
Пример приложения, использующего встроенные фреймы для загрузки файла. (как в популярных файлообмениках, например RapidShare, Megaupload)