Я загружаю файл, просматривая страницу .aspx и возвращая файл
HttpContext.Current.Response.ContentType = "APPLICATION/OCTET-STREAM";
String Header = "Attachment; Filename=" + sFileName;
HttpContext.Current.Response.AppendHeader("Content-Disposition", Header);
FileInfo Dfile = new FileInfo(HttpContext.Current.Server.MapPath(sFilePath));
HttpContext.Current.Response.WriteFile(Dfile.FullName);
HttpContext.Current.Response.End();
, и это нормально.
Я хочу сделать это с помощью асинхронного вызова ajaxиспользуя jQuery, чтобы во время загрузки файла пользователь видел анимацию GIF Spinner.
$("#showbusy").fadeIn();
$.ajax({ async : true, type: "GET", url: "download.aspx",
contentType: "application/text; charset=utf-8",
success: function (data) {
$("#showbusy").hide();
},
error: function (xmlHttpRequest, textStatus, errorThrown) {
$("#showbusy").hide();
}
});
Если я перехожу прямо на страницу .aspx, файл загружается, но это не работает, если выполнить ajax-вызовэта страница по какой-то причине.Я вижу, что данные возвращаются в Firebug, но после завершения загрузки они просто остаются в памяти.
Как мне вызвать диалоговое окно сохранения файла на стороне браузера после получения данных загрузки файла?