У меня есть 2 кнопки: одна для загрузки PDF-файла и другая для загрузки HTML File.
когда мы нажимаем на ссылку для загрузки html, тогда файл html загружается правильно, но после этого, когда мы нажимаем на ссылку PDF-файла, загружается поврежденный PDF-файл. То же самое происходит и наоборот. (По обеим ссылкам, которые будут нажиматься первыми, файл этой ссылки будет загружен правильно.)
Контроллер веб-API
[HttpGet]
[Route("ExportPDFFile/{docId}")]
public IActionResult ExportPDFFile(string docId)
{
try
{
// Get the file path
string submissionFilePath =
Path.Combine(_configuration.GetSection("AppSettings").GetValue<string>
("SubmissionDataPath"), docId + ".pdf");
// Send file to client
Stream stream = System.IO.File.OpenRead(submissionFilePath);
if (stream == null)
{
return NotFound(); // returns a NotFoundResult with Status404NotFound response.
}
return new FileStreamResult(stream, "application/octet-stream");
}
catch (Exception ex)
{
SendExceptionEmail(ex);
_logger.LogError("{0}\n{1}", ex.Message, ex.StackTrace);
throw;
}
}
/// <summary>
/// Return the Submission document from the file store
/// </summary>
/// <param name="docId"></param>
/// <returns></returns>
[HttpGet]
[Route("exportHTMLFile/{docId}")]
public IActionResult exportHTMLFile(string docId)
{
try
{
// Get the file path
string submissionHTMLFilePath =
Path.Combine(_configuration.GetSection("AppSettings").GetValue<string>
("SubmissionDataHTMLPath"), docId + ".html");
// Send file to client
Stream stream = System.IO.File.OpenRead(submissionHTMLFilePath);
if (stream == null)
{
return NotFound(); // returns a NotFoundResult with Status404NotFound response.
}
return new FileStreamResult(stream, "application/octet-stream");
}
catch (Exception ex)
{
SendExceptionEmail(ex);
_logger.LogError("{0}\n{1}", ex.Message, ex.StackTrace);
throw;
}
}
app-service .ts
exportPDFFile(id) {
let apiUrl = window.location.href + 'Submission/ExportPDFFile/' + id;
let httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json',
//'Authorization': 'jwt-token'
}),
responseType: 'blob' as 'json'
};
return this._http.get<string>(apiUrl, httpOptions);
}
exportHTMLFile(id) {
let apiUrl = window.location.href + 'Submission/exportHTMLFile/' + id;
let httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json',
//'Authorization': 'jwt-token'
}),
responseType: 'blob' as 'json'
};
return this._http.get<string>(apiUrl, httpOptions);
}