Я использую Web Api (C#) для создания косвенной ссылки для скачивания, используя следующие коды:
Код вебапи:
var file = new FileStream(filePath, FileMode.Open, FileAccess.Read);
var httpResponseMessage = new HttpResponseMessage
{
StatusCode = HttpStatusCode.OK,
Content = new StreamContent(file)
};
httpResponseMessage.Content.Headers.Add("x-filename", fileName);
httpResponseMessage.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
httpResponseMessage.Content.Headers.ContentDisposition =
new ContentDispositionHeaderValue("attachment") { FileName = fileName };
return httpResponseMessage;
Угловой код:
var response = mainService.DownloadFile('api/download/file?id=1'); // $http get
response.then(function (resp) {
// Do Nothing
}, function (err) {
console.log(err.message);
});
Когда в системе установлен менеджер загрузок (аналог IDM) все работает нормально.
но без менеджера загрузки Браузер не показывает диалог загрузки. Ни в Chrome, ни в FireFox
Я проверил вкладку «Сеть» в «Проверить элемент». Мой запрос вернул 200 http-код и полученные данные, но браузер не показывает никакого диалога для начала загрузки.
Вы можете помочь мне?