Для многих браузеров подойдет "var dt = new DataTransfer();"
Для firefox можно прописать "new ClipboardEvent('').clipboardData"
А для браузера IE есть варианты?
Изначально формирую fileList при помощи new DataTransfer() для того, чтобы записать туда обработанные файлы, которые загрузил пользователь.
Затем перезаписываю input.files.
mrTangi, здесь ключевой момент, а зачем вам вообще перезаписывать input type files? Файлы можно просто хранить в переменной, а потом отправлять их на сервер AJAX-ом.
mrTangi, вы можете ваши файл конвертировать в обычный текст, такой текст называется base64. Далее этот текст делите на части и по частям пересылаете на сервер, а на сервере уже склеиваете в полный текст, после чего обратно конвертируете base64 в файл.
mrTangi, сразу скажу, что не обязательно конвертировать файл в текст, можно сразу работать с бинарными данными в браузере, но просто мне показалось, что вариант с текстом будет проще для вашего понимания и реализации.