如何解决涉及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进行下载。
希望能有所帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。