Я создаю приложение для загрузки больших файлов на сервер через html5
&& xhr
.
Поэтому, когда дело доходит до загрузки изображений, я знаю, как это сделать.
Но если вы хотите загружать большие файлы (> 100 МБ), это очень плохо с точки зрения пользователя.
Форма:
<input type="file" id="input">
<script>
input.addEventListener('change', function () {
console.log('changed');
});
</script>
Ожидание:
1) Select file of 400 MB.
2) 'onchange' event fired.
3) Upload file via XHR and show progress.
Проблема: (протестирован на моем MacBook Air, Chrome 59)
1) Select file of 360 MB weight.
2) Get stuck somewhere for 1 min.
3) Event 'onchange' fired.
По моим наблюдениям, браузер обрабатывает 1 МБ данных примерно за 166 мс. Хотя, я просто хочу загрузить необработанные двоичные данные на сервер.
Есть ли способ сразу выбрать и загрузить какой-либо файл в браузере? (не дожидаясь, пока браузер завершит обработку всего содержимого файла)
Проблема возникает только при работе с определенными файлами.
В моем случае я пытался загрузить Google Chrome.app
и еще несколько достаточно больших приложений на MacOS.
Но дело в том, что .app
- это не файл, а папка со ссылками на ее содержимое.
Таким образом, каждый раз, когда я выбираю такой file
мой браузер (или система, не уверен) автоматически создает zip-версию всего содержимого приложения. Это время, затрачиваемое на время.
Нет проблем с регулярными твердыми файлами, такими как фильмы размером 8 ГБ - получение таких файлов через File API
- вопрос миллисекунд.