С кодом ниже я получаю «безопасную ручку была закрыта». от copytofileasync. Это происходит, даже если проходит только одна операция файла. Кроме того, это происходит только в больших (ish) файлах. < /P>
, как видите, что Fille (ы) обновляются из запроса POST по HTTP. CopyTOfIleAsync неуместен? < /P>
[HttpPost]
public async Task PostFormData(List files, CancellationToken cancellationToken = default)
{
try {
if (!Request.ContentType?.Contains("multipart/form-data") == true)
{
return BadRequest("Unsupported media type.");
}
string webRootPath = _webHostEnvironment.WebRootPath;
string contentRootPath = _webHostEnvironment.ContentRootPath;
List taskList = new List();
foreach (var file in files)
{
if (file.Length > 0)
{
var fileName = Path.GetFileName(file.FileName);
var filePath = Path.Combine(_webHostEnvironment.WebRootPath, fileName);
using (var stream = new FileStream(filePath, FileMode.Create))
{
taskList.Add(file.CopyToAsync(stream, cancellationToken));
}
}
}
int filesCopied = 0;
if (taskList.Count > 0)
{
await Task.WhenAll(taskList);
foreach (var task in taskList)
if (task.Status == TaskStatus.RanToCompletion)
filesCopied++;
}
return Ok(new { message = $"{filesCopied} Files uploaded successfully" });
}
catch (TaskCanceledException)
{
throw;
}
catch (System.Exception ex)
{
return BadRequest($"Error: {ex.Message}");
}
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... -exception