Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 涉及HTML和JS的文件下载_Javascript_Html_Download - Fatal编程技术网

Javascript 涉及HTML和JS的文件下载

Javascript 涉及HTML和JS的文件下载,javascript,html,download,Javascript,Html,Download,下面是一个场景。我有一个网页,上面有文件。我选择了两个文件,它们开始下载。一切都好,但我想第二个文件开始自动下载,只有当第一个已经完成。这是我的密码。你们能给点建议吗 <html> <head> <script type="text/javascript"> var suffix=1; function downloadAll(oFrm){ var oChk = oFrm.elements["file"+(suffix++)]; if (oCh

下面是一个场景。我有一个网页,上面有文件。我选择了两个文件,它们开始下载。一切都好,但我想第二个文件开始自动下载,只有当第一个已经完成。这是我的密码。你们能给点建议吗

<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>

var后缀=1;
函数下载全部(oFrm){
var oChk=oFrm.elements[“文件”+(后缀++)];
国际单项体育联合会{
如果(勾选){
location.href=oChk.value;
//setTimeout(函数(){downloadAll(oFrm)},1000);
}
否则{
下载全部(oFrm);
}
}
}
1.mp3
2.mp3

不幸的是,JavaScript无法判断文件何时完成下载。我建议的最佳建议是使用后端服务器根据请求压缩所选文件,然后将压缩文件夹发送给用户

对于前端,您可以使用jQuery将请求实时发送到服务器

至于后端逻辑,我会尝试,它必须安装在服务器上。服务器将压缩从jQuery请求的文件,将压缩存储在临时位置,并将用户重定向到该URL进行下载


希望这能有所帮助。

非常感谢您在这件事上对我的帮助。如果您不介意,请单击我答案旁边的复选标记,删除我的答案。你和我将因此获得分数。:)