Ну не знаю
Вот такой простой скрипт
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" lang="ru">
<meta name="viewport" content="width=device-width, initial-scale=1.0" >
<title> LOAD ZIP </title>
</head>
<body >
<button id=load>Load and save zip</button>
<span id='ldl'></span>
<script>
document.getElementById('load').addEventListener('click',
() => {
let filename;
fetch('getzip.php')
.then (res => {
filename = res.headers.get("filename")
return res.blob();
})
.then (blob => {
document.getElementById('ldl').innerHTML = `Прочитан ${filename} ${blob.size} байт`;
let url = URL.createObjectURL(blob);
let a = document.createElement('a');
a.href = url;
a.download = filename;
a.click();
URL.revokeObjectURL(url)
})
}
)
</script>
</body>
</html>
С вот таким простым PHP
<?php
function file_force_download($file) {
// заставляем браузер показать окно сохранения файла
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . basename($file));
header('filename: ' . basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
// читаем файл и отправляем его пользователю
readfile($file);
exit;
}
file_force_download('test.zip');
?>
Считывает zip и правильно сохраняет и в FF и в Chrome