У меня есть ссылка на моей странице, по клику которой я пытаюсь создать PDF-документ, а затем отобразить приглашение «Открыть-Сохранить» в браузере.Быстрый файл скачать
Мой HTML (компонент реакции) имеет код ниже, где onclick
вызывает функцию _getMyDocument
, которая затем вызывает метод Webapi.
<div className="row">
<a href="#" onClick={this._getMyDocument.bind(this)}>Test Link</a>
</div>
_getMyDocument(e) {
GetMyDocument(this.props.mydata).then(()=> {
}).catch(error=> {
});
Мой контроллер имеет код ниже
[HttpPost]
[Route("Generate/Report")]
public IHttpActionResult GetMyReport(MyData myData)
{
byte[] myDoc = MyBusinessObject.GenerateMyReport(myData);
var result = new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new ByteArrayContent(myDoc)
};
result.Content.Headers.ContentDisposition =
new ContentDispositionHeaderValue("attachment")
{
FileName = "MyDocument.pdf"
};
result.Content.Headers.ContentType =
new MediaTypeHeaderValue("application/octet-stream");
var response = ResponseMessage(result);
return response;
}
В настоящее время весь код выполняется, но я не получаю файл PDF скачать приглашение. Что я здесь делаю неправильно?
объект Response на успех от lokks Ajax вызова, как показано ниже
Пробовали ли вы мое решение. Пожалуйста, оставьте свой отзыв. – ScrapCode
Я попытался назначить URL-адрес загрузки после ответа @Ermir Beqiraj. var file = new Blob ([response], {type: 'application/pdf'}); var fileURL = URL.createObjectURL (файл); window.location = fileURL; Это загрузка PDF, но недействительная. – San
Что такое 'MyBusinessObject.GenerateMyReport (myData);' делать? .. он делает запрос в другое приложение? –