Подтвердить что ты не робот

Загрузка файла HTML5 - застрял на очень больших файлах - только Firefox

Я пытаюсь загрузить HTML5 для работы. Пока у меня это работает нормально, без проблем. Единственная проблема, с которой я столкнулся, выглядит следующим образом (только браузер Firefox - Chrome работает хорошо):

  • загрузить страницу
  • попробуйте загрузить очень большой файл (более 1 ГБ)
  • Загрузка занимает очень много времени, поэтому прогресс все запутан и, кажется, дважды загружает файл

Если между этапами 1 и 2 я загружаю файл меньшего размера, большой файл начинает правильно загружаться с хорошей индикацией выполнения.

Чтобы испытать это, вам нужно только попробовать следующие шаги на следующей демонстрационной странице: http://exposureroom.biz/upload.aspx. Демо-страница из хорошо известного примера загрузки HTML5: http://www.matlus.com/html5-file-upload-with-progress/. Я сам не писал сам, но он работает точно с моим script и доступен.

Является ли это ошибкой браузера? Кто-нибудь сталкивался с этим раньше?

Спасибо

4b9b3361

Ответ 1

Я не думаю, что это ошибка браузера, а скорее ошибка в программе загрузки. Я тестировал с загрузкой 1 ГБ и 2 ГБ файла, и загрузка началась сразу же без ожидания.

Убедитесь, что ваш тест действителен, но я обнаружил следующее непредвиденное поведение.

случай 1:
1. начать загрузку 1G файла
2. загрузка началась нормально, и прогресс нормальный
3. перед завершением загрузки нажмите "Обзор" и загрузите файл 2G
4. загрузка началась нормально, и прогресс был испорчен. демонстрируя отрицательную скорость и прочее.

случай 2:
1. начать загрузку файла 2G
2. загрузка началась нормально, и прогресс нормальный
3. перед завершением загрузки нажмите "Обзор" и загрузите файл 1G
4. загрузка началась нормально, и прогресс был испорчен. демонстрируя отрицательную скорость и прочее.

случай 3:
1. начать загрузку 1G файла
2. загрузка началась нормально, и прогресс в норме.
3. Запустите новую вкладку и начните загрузку файла 2G
4. Загрузка началась нормально, и прогресс нормальный.

похоже, что ваша программа не обрабатывает первые два тестовых примера, она не похожа на ошибку браузера.

перед отключением кнопки загрузки после начала файла, попробуйте выяснить, почему "отменить" загрузка не работает (если вы ее внедрили). похоже, что есть успех, чтобы отменить загрузку файла с html5 на стороне клиента.

Ответ 2

Это не ошибка в Firefox, это ошибка в вашей программе. Воспроизводится поведение @Ray Cheng в FF 11.0 и Chrome 18.0.1025.151 на Mac. Не воспроизводил проблему OP в любом браузере, но я подозреваю, что это было основано на непонимании того, что происходило из-за нарушенной обратной связи в программе.

Тесты с ошибками, по-видимому, проистекают из-за того, что загрузка второго файла не отменяет загрузку первого файла, и две загрузки обновляют один и тот же индикатор выполнения и используют одни и те же значения (например, размер файла последнего загруженного файла ) и некоторые уникальные значения (например, байты этой конкретной загрузки завершены). Или что-то типа того. Я не копал код в глубину, но я нашел это (обратите внимание, что эти переменные находятся в области глобальная, но обновляются событиями, генерируемыми объектом XMLHttpRequest, выполняющим загрузку):

  var bytesUploaded = 0;
  var bytesTotal = 0;
  var previousBytesLoaded = 0;
  var intervalTimer = 0;

Одна очевидная проблема с текущей системой заключается в том, что если вы начнете загружать большой файл, а затем загрузите небольшой файл, вы получите смешную обратную связь, как показано ниже, после того, как меньший файл завершит загрузку, не говоря уже о том, что первая загрузка файла не выполняется, (Размер примечаний и процент загрузки по сравнению с размером загруженного файла.)

Screen Shot

В начале я рекомендую отключить кнопку "Обзор/выбор файла" во время загрузки, пока вы не устраните эти другие проблемы.

Ответ 3

У меня есть решение для вашей проблемы. Чтобы загружать большие файлы, вы должны выталкивать файл с помощью вызова api slic файла и обрабатывать запросы, которые вы должны использовать веб-мастеров для большей производительности вычислений.