c# - Hur man laddar ner en fil från asp.net webapi i Angular 7
Jag använder .net Web API i min backend. Det finns en metod för att ladda ner filer från servern. Den är som:
[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);
}
När jag anropar ovanstående metod från Postman öppnar Postman automatiskt dialogrutan för att spara filen.
Men när man använder Angular för att ladda ner filen returnerar den null-data och filen laddas inte ner.
Jag använder den här koden i Angular:
downloadRecordFile(): void {
this._HttpClient.get(`${this.apiRoot}/api/recordFile`).toPromise().then(data => {
console.log(data); // returns null
});
}
All hjälp skulle uppskattas.