Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.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 下载由Chrome阻止的xml和svg文件(无论是否为空)的zip存档_Javascript_Google Chrome - Fatal编程技术网

Javascript 下载由Chrome阻止的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

我想下载放在不同文件夹中的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)。 我对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>