Даже если у вас был путь (некоторые браузеры использовали его для вас), невозможно указать путь для ввода файла типа.
Следовательно, невозможно делать то, что вы хотите, с простым JS и DOM.
Я сказал, что это невозможно, но теперь, когда вы спросили, я думаю, что есть способ с новым File API. Следующие шаги описывают, что нужно сделать, но никоим образом не были протестированы, и я не ожидаю, что это сработает, это просто для того, чтобы показать вам путь, также глобальные переменные плохие, это просто самый простой способ показать , Вот хорошая страница с примерами использования File API http://www.html5rocks.com/en/tutorials/file/dndfiles/
Сначала Вам необходимо ввести тип файла, затем вы можете использовать его, как только пользователь выберет файл, вам будет предоставлен доступ к объекту File. http://dev.w3.org/2006/webapi/FileAPI/#dfn-filereader
<input type="file" id="files" name="files[]" multiple />
<script>
var fileBlobs = [];
function handleFileSelect(evt) {
var files = evt.target.files; // FileList object
// files is a FileList of File objects. You may now read their contents
var reader = new FileReader();
for (var i = 0, f; f = files[i]; i++) {
fileBlobs.push(reader.readAsBinaryString(f));
}
}
document.getElementById('files').addEventListener('change', handleFileSelect, false);
</script>
Второй Теперь у вас есть содержимое в виде двоичной строки. Вы можете использовать File API для локального хранения файла таким образом, чтобы вы могли получить к нему доступ позже, используя интерфейсы FileWriter и FileSaver http://dev.w3.org/2009/dap/file-system/file-writer.html
var bb = new BlobBuilder();
bb.appendfileBlobs.(fileBlobs[0]);
window.saveAs(bb.getBlob(), "test_file");
Третий Вам нужно сделать Ajax-запрос, передавая этот BLOB-объект на сервер, отслеживая, какая часть загрузки завершена. http://www.w3.org/TR/XMLHttpRequest/#the-upload-attribute. Не похоже, что отслеживание прогресса может быть выполнено на клиенте. Возможно, вам придется опросить сервер для фактического прогресса. Возможное решение, чтобы узнать, где начать прерванную загрузку, состоит в том, чтобы иметь идентификаторы загрузки, и когда вы перезапускаете загрузку, вы спрашиваете сервер, какая часть файла была загружена.
Извините, я не могу дать полный ответ, но это не простая проблема. Шаги, которые я вам сделал, должны привести вас в правильном направлении.