Извиняюсь, больше так не буду!
Передать файл на сервер можно следующим образом:
1) Создаём IFRAME и добавляем туда <input type=file ...> (не забывая про форму) например так:
Эдесь формируем интерфейс пользователю... (какой-нибудь метод типа init)
var iframe = document.createElement( "IFRAME" );
var form = iframe.document.createElement( "FORM" );
iframe.document.appendChild( form );
form.method = "POST";
form.action = "куда надо";
document.sendingForm = form; //сохраняем где-нибудь, чтобы потом получить доступ к ней
var uploadInput = iframe.document.createElement( "input" ); //в нем пользователь будет выбирать файл для аплоуда
uploadInput.type = "file";
uploadInput.name = "какое-нибудь имя, чтобы на сервере понять чё это такое";
uploadInput.id = "если нужно (я обычно делаю такое же как и name)";
form.appendChild( uploadInput );
var div = document.getElementById( "какой-нибудь уже существующий на странице DIV" );
while (div.childNodes.length > 0) { //очищаем див (хотя не обязательно, зависит от ситуации)
div.removeChild( div.childNodes[0] );
}
div.appendChild( iframe ); //и добавляем туда наш ифрэйм, чтобы его увидел пользователь
// кстати, вместо DIV-а можно какой-нибудь другой контэйнер
здесь пользователь видит элемент <input type=file ...> и выбирает в нем файл
после этого он, например нажимает на кнопку "Отправить" (или еще что-то в этом духе) и запускается код, который отправляет файл на сервер. Код по сути очень маленький:
document.sendingForm.submit();