涉及HTML和JS的文件下载

问题描述

|| 这是场景。我有一个网页,上面有文件。我选择了两个文件,它们开始下载。一切顺利,但我希望第二个文件仅在第一个文件完成后才自动开始下载。这是我的代码。你们能建议点什么吗?
<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>
    

解决方法

不幸的是,JavaScript没有办法告诉文件何时完成下载。我可以建议的最佳建议是使用后端服务器根据请求压缩所选文件,然后将ZIP文件夹发送给用户。 至于前端,您可以使用jQuery将请求实时发送到服务器。 至于后端逻辑,我会尝试PHP \的Zip扩展名,该扩展名必须安装在服务器上。服务器将压缩jQuery请求的文件,将ZIP存储在一个临时位置,然后将用户重定向到该URL进行下载。 希望能有所帮助。