Думаю, вы не можете этого сделать.
Вы можете принудительно загрузить файл через следующие заголовки, но насколько я знаю, вы не можете смешивать HTML и загрузку файла.
Заголовки:
Content-type: MIME/type
Content-Disposition: attachment; filename="archive.zip"
Content-Length: filesize_in_bytes
Длина содержимого не является обязательной, но при ее использовании диалоговое окно загрузки может показать, сколько еще файлов нужно загрузить.
Что вы можете сделать, это перезагрузить страницу, используя JavaScript. Поскольку страница представляет собой файл, исходная HTML-страница останется на месте:
<html>
<head>
<title>This is the page containing information</title>
<script type="text/javascript">
window.onload = function(){
document.location = 'somefile.zip';
}
</script>
</head>
<body>
This page will stay visible while the file is being downloaded<br>
</body>
</html>