Можно ли реализовать восстановление или возобновление загрузки файлов в браузере? - PullRequest
3 голосов
/ 27 апреля 2010

Проект - это сервлет, в который люди могут загружать файлы через HTTP POST. Это сопровождается веб-страницей, предоставляющей интерфейс для запуска загрузки. Мы имеем более или менее полный контроль над сервлетом и веб-страницами, но не хотим навязывать клиенту какие-либо ограничения, кроме того, что являемся достаточно современным браузером с Javascript. Нет Java-апплетов и т. Д.

Файлы потенциально могут быть большими, и возможный вариант использования - мобильные устройства в менее надежных сетях. Некоторые люди в проекте требуют возможности возобновить загрузку, если сетевое соединение обрывается. Я не думаю, что это возможно с обычным HTTP и Javascript в браузере, но я бы хотел быть ошибочным.

Есть предложения?

Ответы [ 3 ]

1 голос
/ 27 апреля 2010

Не с простой старой JS. Он не имеет доступа к файловой системе, даже к файлу, добавленному к элементу управления input type=file, и поэтому он не может манипулировать данными и загружать их через XHR.

Вы должны рассмотреть альтернативу на основе Flash или Java.

1 голос
/ 27 апреля 2010

С вашими текущими ограничениями, нет.

(Может быть крошечный шанс, что с помощью api-файла HTML5 это удастся сделать. Может быть, кто-то более опытный может прокомментировать, потому что я обычно не могу делать заголовки или хвосты технических спецификаций из w3c: http://www.w3.org/TR/file-upload/ )

0 голосов
/ 27 апреля 2010

В Firefox 3.6 реализован интерфейс FileReader, однако он не поддерживает пропуски. Для этого вам нужно будет прочитать файл и разбить его там, где он нужен для возобновления.

Это не было бы особенно полезно для больших файлов, так как вы, вероятно, в любом случае могли бы аварийно завершить работу браузера из-за выделения памяти, которое понадобилось бы.

https://developer.mozilla.org/en/DOM/FileReader

...