Загрузка файлов с использованием HTML и JS - PullRequest
2 голосов
/ 25 мая 2011

Вот сценарий.У меня есть веб-страница с файлами на нем.Я выбираю два файла, и они начинают загрузку.Все хорошо, НО я хочу, чтобы второй файл начинал загружаться автоматически, только когда первый, когда закончил.Это мой кодРебята, можете ли вы предложить что-нибудь?

<html>
<head>
<script type="text/javascript">
var suffix=1;
function downloadAll(oFrm){
    var oChk = oFrm.elements["file"+(suffix++)];
    if (oChk){
        if (oChk.checked){
            location.href = oChk.value;
            //setTimeout(function(){downloadAll(oFrm)}, 1000);
        }
        else{
            downloadAll(oFrm);
        }
    }
}
</script>
</head>
<body>
<form>
<input type="checkbox" name="file1" id="file1" value="songs/01.mp3" /><label for="file1">1.mp3</label><br />
<input type="checkbox" name="file2" id="file2" value="songs/02.mp3" /><label for="file2">2.mp3</label><br />
<input type="button" value="Download All" onclick="suffix=1;downloadAll(this.form);return false" />
</form>
</body>
</html>

1 Ответ

2 голосов
/ 25 мая 2011

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

Что касается внешнего интерфейса, вы можете использовать jQuery для отправки запроса на сервер в режиме реального времени.

Что касается серверной логики, я бы попробовал PHP расширение Zip , которое должно быть установлено на сервере. Сервер архивирует файлы, запрошенные у jQuery, сохраняет ZIP-архив во временном местоположении и перенаправляет пользователя на этот URL-адрес для загрузки.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...