Каков наилучший способ загрузки файла с сервера
У меня есть интересная задача, которая требует, чтобы я загружал динамически сгенерированный файл с сервера (ASP.NET) на клиент. На стороне клиента это просто JavaScript (jQuery), и клиент может генерировать множество параметров для настройки экспорта данных.
Как лучше всего загрузить файл с сервера? Должен ли я использовать службу WCF, например, описанную здесь, или простую страницу, подобную этой?
Я не знаю, как загрузить файл без перезагрузки страницы (я не уверен, что $.ajax будет работать в этом случае). Может ли кто-нибудь дать мне какое-то руководство по этой теме? Благодарю.
1 ответ
Сначала вы можете создать файл из обработчика .ashx
Допустим, у вас есть файл для скачивания на download.ashx
и у вас есть некоторые параметры для передачи из вашего JavaScript, например download.ashx?p1=8827&p2=8831
знать, что ты собираешься создать.
Тогда на вашем JavaScript вы можете сделать перенаправление как
window.location = "download.ashx?p1=8827&p2=8831";
или альтернативу вы можете использовать window.open
делать то же самое думать
window.open("download.ashx?p1=8827&p2=8831");
и ваш файл начнет загрузку.
Просто убедитесь, что вы установили заголовок вложения и правильный тип содержимого на вашем дескрипторе, например:
HttpContext.Current.Response.ContentType = "application/octet-stream";
HttpContext.Current.Response.AddHeader("Content-Disposition",
"attachment; filename=" + SaveAsThisFileName);
Просто и понятно, как проверено, так и работает.
Также вас может заинтересовать этот ответ: Как обрабатывать ошибки.