Аннотация:
1) Прочитать файл перед отправкой (поймать в событии onsubmit);разделить и отправить куски как поля textarea.
2) На стороне сервера восстановите чанки и создайте один отдельный файл.
Предложение:
В зависимости от среды, в которой выполняется сценарий, и места размещения файла.В вашем распоряжении следующие параметры:
XMLHttpRequest
объект (для чтения файлов, доступных по URL на вашем веб-сайте)
FileSystemObject
(если вы используете Windows Scripting Host или Internet Explorer вдоверенная среда) «вспомогательный» Java-апплет, который считывает файл или URL для вашего сценария.
(Извлечение из http://www.javascripter.net/faq/reading2.htm)
Если все в порядке, удалите элемент входного файла формы.
Затем разбейте строку на несколько кусков.
mySplitResult = myReadedDocument.split( 1024 * 1024 ); // 1M each
, которые составляют массив частей вашего документа:
Добавьте значения в форму (не забудьте установить то же самоеимя с [] для всех новых элементов управления.) Предположим, что идентификатор формы 'myForm':
formName = document.getElementById('myForm');
mySplitResult.forEach(function(item) {
ta = document.createElement('textarea');
ta.appendChild(document.createTextNode(item))
ta.setAttribute("name", "chunk[]" );
formName.appendChild(ta);
});
На стороне сервера вы можете восстановить фрагменты и сохранитьв виде файла.
<?php
$chunks = $_POST['chunk'];
$fileContent = implode( '', $chunks );
file_put_content( 'dirname/filename.foo', $fileContent );
?>
Вес успеха заключается в том, что вы можете прочитатьфайл на стороне клиента.
Удачи!