HTML5 - загрузить файл без обработки на стороне клиента

1

Я создаю приложение для загрузки больших файлов на сервер через 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 мс. Хотя, я просто хочу загрузить необработанные двоичные данные на сервер.

Есть ли способ сразу выбрать и загрузить какой-либо файл в браузере? (не дожидаясь, пока браузер завершит обработку всего содержимого файла)

Теги:
file-upload
asynchronous
large-files

1 ответ

0
Лучший ответ

Проблема возникает только при работе с определенными файлами.

В моем случае я пытался загрузить Google Chrome.app и еще несколько достаточно больших приложений на MacOS.

Но дело в том, что .app - это не файл, а папка со ссылками на ее содержимое.

Таким образом, каждый раз, когда я выбираю такой file мой браузер (или система, не уверен) автоматически создает zip-версию всего содержимого приложения. Это время, затрачиваемое на время.

Нет проблем с регулярными твердыми файлами, такими как фильмы размером 8 ГБ - получение таких файлов через File API - вопрос миллисекунд.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню