Как скачать файл из webpi asp.net в угловой 7 - PullRequest
0 голосов
/ 17 ноября 2018

Я использую .net Web API на своем сервере. Существует способ загрузки файла с сервера. Это как:

[HttpGet]
[Route("recordFile")]
public BaseResponse RecordFile()
{
    ViewModel data;
    // ...something with data
    string recordPath = data.RecordPath;
    string fullpath = HttpContext.Current.Server.MapPath(recordPath);
    string contentType = "application/" + Path.GetExtension(fullpath).Substring(1);
    WebClient req = new WebClient();
    HttpResponse response = HttpContext.Current.Response;
    response.Clear();
    response.ClearContent();
    response.ClearHeaders();
    response.Buffer = true;
    response.ContentType = contentType;
    response.AddHeader("Content-Disposition", "attachment;filename=\"" + fullpath + "\"");
    response.BinaryWrite(req.DownloadData(fullpath));
    response.End();
    return OkRes(null, "Success", StatusCodeConstant.Ok);
}

Когда я нажимаю вышеупомянутый метод от Почтальона, почтальон автоматически открывает диалоговое окно для сохранения файла.

Но при использовании Angular для загрузки файла он возвращает null данные, и файл не загружается.

Я использую этот код в угловых:

downloadRecordFile(): void {  
this._HttpClient.get(`${this.apiRoot}/api/recordFile`).toPromise().then(data => {
    console.log(data);  // returns null
});
}

Любая помощь будет оценена.

...