Javascript 下载由Chrome阻止的xml和svg文件(无论是否为空)的zip存档
我想下载放在不同文件夹中的xml和svg文件的zip存档:Javascript 下载由Chrome阻止的xml和svg文件(无论是否为空)的zip存档,javascript,google-chrome,Javascript,Google Chrome,我想下载放在不同文件夹中的xml和svg文件的zip存档: +archive.zip +imgs test.svg test1.svg test2.svg +xml highway.xml 如果我在imgs文件夹中放置了三个以上的svg文件(即使是空的svg和xml文件),Chrome会将该归档文件检测为恶意文件 我用Chrome48和49进行了测试(我当前的Chrome版本是49.0.2623.87 m)。 我对Firefo
+archive.zip
+imgs
test.svg
test1.svg
test2.svg
+xml
highway.xml
如果我在imgs文件夹中放置了三个以上的svg文件(即使是空的svg和xml文件),Chrome会将该归档文件检测为恶意文件
我用Chrome48和49进行了测试(我当前的Chrome版本是49.0.2623.87 m)。
我对Firefox44和IE10没有问题
这是我的简单html页面(读取和下载文件):
读取和下载按钮
函数切换SelectFileInput(){
var inputSelect=document.getElementById('zippedConfigFileInput');
inputSelect.click();
}
函数readAndDownloadFile(){
var inputElement=document.getElementById('zippedConfigFileInput');
var file=inputElement.files[0];
var fr=new FileReader();
fr.addEventListener(“loadend”,函数(){
var resultStr=fr.result;
下载文件(file.name,resultStr);
});
fr.readAsDataURL(文件);
}
函数下载文件(名称、uri){
var link=document.createElement(“a”);
link.download=名称;
link.href=uri;
document.body.appendChild(链接);
link.click();
document.body.removeChild(link);
}
我已经在本地测试了Glassfish 4.1服务器提供的这个页面,然后直接读取html文件(没有服务器)以获得相同的效果
我不明白为什么Chrome会将此存档检测为恶意文件
如果删除xml文件夹或一个svg文件,请按预期下载工作
更新: 我做了更多的测试,Chrome似乎不想为某些文件下载FileReader.readAsDataURL的结果 我只使用一个链接创建了一个新的测试页面,并作为FileReader.readAsDataURL提供的zip存档(带有空svg和xml文件)的结果:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<a href="data:application/x-zip-compressed;base64,UEsDBBQAAAAAAOd9aUgAAAAAAAAAAAAAAAAPAAAAeG1sL2hpZ2h3YXkueG1sUEsDBBQAAAAAACF/aUgAAAAAAAAAAAAAAAANAAAAaW1ncy90ZXN0LnN2Z1BLAwQUAAAAAAAhf2lIAAAAAAAAAAAAAAAAFQAAAGltZ3MvdGVzdCAtIENvcGllLnN2Z1BLAwQUAAAAAAAhf2lIAAAAAAAAAAAAAAAAGQAAAGltZ3MvdGVzdCAtIENvcGllICgyKS5zdmdQSwECFAAUAAAAAADnfWlIAAAAAAAAAAAAAAAADwAAAAAAAAAAACAAAAAAAAAAeG1sL2hpZ2h3YXkueG1sUEsBAhQAFAAAAAAAIX9pSAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAgAAAALQAAAGltZ3MvdGVzdC5zdmdQSwECFAAUAAAAAAAhf2lIAAAAAAAAAAAAAAAAFQAAAAAAAAAAACAAAABYAAAAaW1ncy90ZXN0IC0gQ29waWUuc3ZnUEsBAhQAFAAAAAAAIX9pSAAAAAAAAAAAAAAAABkAAAAAAAAAAAAgAAAAiwAAAGltZ3MvdGVzdCAtIENvcGllICgyKS5zdmdQSwUGAAAAAAQABAACAQAAwgAAAAAA">Download</a>
</body>
</html>
这给了后人一个警告。。。。
这实际上是一个来自chrome的bug
我在网上直接打开了一个帖子
以下是chrome开发人员的最后一封邮件:
我们将重新评估我们这边的竞选规则,看看它是否值得保留
自从Chrome版本51.0.2704.103 m以来,这个bug就消失了
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<a href="data:application/x-zip-compressed;base64,UEsDBBQAAAAAAOd9aUgAAAAAAAAAAAAAAAAPAAAAeG1sL2hpZ2h3YXkueG1sUEsDBBQAAAAAACF/aUgAAAAAAAAAAAAAAAANAAAAaW1ncy90ZXN0LnN2Z1BLAwQUAAAAAAAhf2lIAAAAAAAAAAAAAAAAFQAAAGltZ3MvdGVzdCAtIENvcGllLnN2Z1BLAwQUAAAAAAAhf2lIAAAAAAAAAAAAAAAAGQAAAGltZ3MvdGVzdCAtIENvcGllICgyKS5zdmdQSwECFAAUAAAAAADnfWlIAAAAAAAAAAAAAAAADwAAAAAAAAAAACAAAAAAAAAAeG1sL2hpZ2h3YXkueG1sUEsBAhQAFAAAAAAAIX9pSAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAgAAAALQAAAGltZ3MvdGVzdC5zdmdQSwECFAAUAAAAAAAhf2lIAAAAAAAAAAAAAAAAFQAAAAAAAAAAACAAAABYAAAAaW1ncy90ZXN0IC0gQ29waWUuc3ZnUEsBAhQAFAAAAAAAIX9pSAAAAAAAAAAAAAAAABkAAAAAAAAAAAAgAAAAiwAAAGltZ3MvdGVzdCAtIENvcGllICgyKS5zdmdQSwUGAAAAAAQABAACAQAAwgAAAAAA">Download</a>
</body>
</html>