Добавьте следующий заголовок при загрузке файла загрузки:
Content-disposition: attachment; filename=filename.zip
Большинство браузеров будут ждать, чтобы увидеть, что они загружают, прежде чем очистить текущую страницу, и если это что-то, что должно быть загружено как файл, они не уйдут с текущей страницы (они покажут Диалог Сохранить как перед страницей, который можно закрыть, чтобы вернуться на страницу).
Если, однако, вы обнаружите, что определенный браузер не перемещается с текущей страницы, вы можете попробовать добавить ссылку на загрузку, содержащуюся в небольшом фрейме, поэтому меняется только этот фрейм.
Я думаю, что это лучшее решение для открытия ссылки в новом окне, потому что некоторые браузеры оставят это окно открытым даже после того, как определят, что это файл, который нужно загрузить, так что вы получите пустое окно.