提问人:Tommy 提问时间:9/19/2023 更新时间:9/19/2023 访问量:39
处理多个请求并仅返回一个
Handling multiple Requests and return just one
问:
我从前端应用程序收到多个 POST 请求。例如,一个块可以存储 5 个文件,如果前端应用程序向我发送 10 个文件,则意味着它发送 2 个文件块 == 2 个请求。我想抓住这 2 个请求并从中创建一个 PDF 文件。现在我的代码正在制作 2 个单独的 PDF 而不是 1 个 PDF。
控制器.cs
[HttpPost]
[Route("exportToPdf")]
public async Task<IActionResult> GeneratePdf([FromQuery] string colorMode, [FromQuery] string? textOrPath)
{
try
{
var tasks = new List<Task<byte[]>>();
foreach (var svgFile in Request.Form.Files)
{
var task = Task.Run(() =>
{
return _pdfGeneratorService.GeneratePdfFromSvgFile(svgFile, colorMode, textOrPath);
});
tasks.Add(task);
}
await Task.WhenAll(tasks);
var pdfPages = tasks.Select(task => task.Result).ToList();
var finalPdfBytes = MergePages.MergePdfPages(pdfPages);
var memoryStream = new MemoryStream(finalPdfBytes);
return File(memoryStream, "application/pdf", "output.pdf");
}
catch (NoFileProviderException ex)
{
_logger.LogError(ex.Message);
return BadRequest(ex.Message);
}
catch (Exception ex)
{
_logger.LogError(ex, "An error occurred while generating the PDF");
return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
}
}
答: 暂无答案
评论