Невозможно загрузить файл html и файл PDF одновременно с помощью двух разных нажатий кнопок в веб-контроллере angular 8 API - PullRequest
0 голосов
/ 02 февраля 2020

У меня есть 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);

}

1 Ответ

0 голосов
/ 04 февраля 2020

Установить Cordova CLI до версии> = 4.2.0 npm установить -g cordova. Это решило мою проблему

...