Я использую .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
});
}
Любая помощь будет оценена.