Мы пытаемся загрузить файл с веб-api v2, а затем либо использовать «Сохранить как», либо автоматически загружать в браузере любое решение будет хорошо, но не может заставить его работать.Angular загрузить pdf с веб-API 2
Что происходит в Chrome - ничего, ничего не делает В IE мы получаем приглашение: «Вы хотите разрешить этому веб-сайту открывать приложение на вашем компьютере?» нажмите «Разрешить», а затем ничего не произойдет вообще.
Вот код контроллера WebAPI:
[HttpGet]
[Route("{pdf}/{getPDF}")]
public async Task<IHttpActionResult> GetPDF()
{
var outputpath = HttpContext.Current.Server.MapPath("~/");
HttpResponseMessage result;
using (FileStream stream = new FileStream(outputpath + "Inv_008618_180868_33687.pdf", FileMode.Open))
{
result = new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new StreamContent(stream),
};
result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf");
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = "Inv_008618_180868_33687.pdf",
Size = stream.Length
};
return Ok(result);
}
}
Я думаю, что приведенный выше код правильно не уверен на 100%, хотя, как размер файла очень мал.
Вот Угловой код:
getPDF: function() {
var scope = this;
var urlApi = 'http://localhost:59242/supplier/pdf/';
return $http({
url: urlApi,
responseType: 'arraybuffer'
}).then(function (response) {
var file = new Blob([response], { type: 'application/pdf' });
var fileURL = URL.createObjectURL(file);
var pdf = $sce.trustAsResourceUrl(fileURL);
//var element = angular.element('<a/>');
//element.attr({
// href: 'data:attachment/pdf;charset=utf-8,' + encodeURI(response),
// target: '_self',
// download: 'test.pdf'
//})[0].click();
window.open(pdf);
}
return response.data;
})
.catch(function (err) {
})
}
Я хотел бы поблагодарить Вас за ответ
Что произойдет, если вы вызываете конструктор блоб с response.data : 'var file = new Blob ([response.data], {type: 'application/pdf'});'? – peco
Привет, peco решил проблему, используя ngFileSaver – user142617