Хотя ваш вопрос не включает в себя то, что вы сделали до сих пор, но я надеюсь, что это поможет вам в некотором роде:
public async Task<IActionResult> Upload(string folder)
{
if (folder == null)
{
folder = "Uploads";
}
var file = Request.Form.Files[0];
var directory = Path.Combine(_environment.WebRootPath, $"{folder}");
var filePath = $"{Request.Scheme}://{Request.Host}/{folder}/";
var finalFileName = "";
if (file.Length > 0)
{
if (!Directory.Exists(directory))
{
Directory.CreateDirectory(directory);
}
var fileName = Path.GetFileName(Guid.NewGuid().ToString().Substring(0, 12).ToLower() + file.FileName);
var path = Path.GetFullPath(directory);
using (var fileStream = new FileStream(Path.Combine(path, fileName), FileMode.Create, FileAccess.ReadWrite))
{
await file.CopyToAsync(fileStream);
}
finalFileName = fileName;
}
return Ok($"{filePath + finalFileName}");
}
ПРИМЕЧАНИЕ. Пожалуйста, вставьте IWebHostEnvironment в свой конструктор контроллера, если вы используете ASP. NET Core 3.1 или его эквивалент, если он ниже.
Приведенный выше код позволяет вам создавать папки в папке wwwroot с указанным вами именем, а также загружать изображения или файлы.
Надеюсь, это поможет вам решить проблему.