Невозможно загрузить файл html и файл PDF в angular 8 контроллер веб-API - PullRequest
0 голосов
/ 01 февраля 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) {
    //id = "SUB.001.02013";
      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) {
    //id = "SUB.001.05010";
    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);
}
...