Вы можете попытаться загрузить файл, используя хитрость, которую AJAX использовал: скрытый iframe.
Теоретически (хотя сам не пробовал) вы можете загрузить свой файл с таргетингом на iframe, что-то похожее на то, что описано в этой статье .
У меня были такие классические запросы от клиентов, которые думают, что браузер может вести себя так же, как любое другое приложение для настольных компьютеров, что не имеет место в 2010 году.
Есть много проблем, которые могут пойти не так. Даже если вы загрузите файл за кулисы, ничто не помешает пользователю отойти от страницы в дальнейшем. Он может загрузить новую страницу, закрыть браузер, закрыть вкладки и т. Д. И испортить загрузку. Вы получите много поврежденных файлов и будете вынуждены ввести много кода JavaScript, чтобы попытаться ограничить действия пользователя, и вы не сможете охватить всю основу.
Это явно проблема удобства использования. Рассматривали ли вы использовать вместо этого индикатор выполнения загрузки? Это дает пользователю что-то симпатичное, а также оценку оставшегося времени. Вы можете найти здесь пример загрузки с индикатором выполнения с помощью Struts.