Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Download множества файлов


Автор: Avb 9.10.2006, 13:51
Посоветуйте плиз, как решить такую задачу:
Пользователь должен по клику на элемент скачать несколько файлов. При этом он должен видеть реальный progress bar загрузки.
Сейчас это реализовано с помощью flash. Но есть проблемы и нужны альтернативные варианты.

P.S. Не мог создать тему пока не запретил кэш. После очистки кэша - все ОК.

Автор: GZep 9.10.2006, 14:34
ну, я так понял, тебе подойдет вариант с стандартными(браузерными) прогресс барами?
тогда можно что-то вроде этого:
Код

//все файлы дл
var files= [
  "document.doc",
  "document2.doc",
  "muzblKA.ogg"
];

var base = "./pub/data/";

//циклом пройдемся по всем файлам
for (var i=0; i<files.length; i++) {
    window.open(base + files[i], "download: " + i, "");
}


вот такой вариант подойдет?
если нет,то скажи пожалуйста поконкретнее, как ты хочешь видеть решение...
 smile 


M
Sardar
По просьбе GZep'а отредактировал код.

Автор: 12345c 9.10.2006, 14:41
Говорят, что на JS+серверном языке такая задача не решается, потому что Apache и языки не имеют доступа к счётчику отгрузки файла по HTTP или FTP. (Напротив, upload файла контролировать можно, глядя через XMLHttp на реальный размер принимаемого файла на сервере.) Флеш тоже не должен показывать реального прогресс-бара. Или он умеет читать размер принимаемого файла?

Автор: pythonwin 9.10.2006, 15:27
GZep, прикольно!

Автор: Avb 9.10.2006, 16:41
Цитата(12345c @  9.10.2006,  14:41 Найти цитируемый пост)
Флеш тоже не должен показывать реального прогресс-бара. Или он умеет читать размер принимаемого файла? 


Говорят, 8-й может.

Добавлено @ 16:52 
B]GZep[/B], так мы открываем у пользователя несколько окон, что не очень красиво.

Хотелось бы примерно так:

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

smile Как  вообще можно "красиво" загрузить список файлов?

Автор: GZep 11.10.2006, 14:51
Код

B]GZep[/B], так мы...


Avb, не очень красиво только закрывать тег не открывая его!  smile 

А чё, правда прикольно? надо будет попробовать такой код в деле, тока окна наверное блокироваться будут...  smile 


Кстати, флеш умеет делать прогресс бар загрузки только компонента этого флеш ролика (например другого флеш файла, если надо разбить один файл на несколько, с поддержкой загрузки)

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

 smile 

Автор: Sardar 11.10.2006, 15:01
12345c, в заголовках сервер обычно отдаёт размер инфы (Content-length).
Также можно попытаться отослать HEAD запрос, сервер отдаст инфу о ресурсе.

GZep, перечитай свой код, убедись что с массивом ты не работаешь.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)