Проект с использованием .net core 2.2 с использованием элементов управления Telerik, пытающихся загрузить файл в BLOB-объект Azure.
У меня есть контроллер, который ожидает, что представленная модель будет иметь IEnumerable IFormFile.
Когда я пытаюсь прочитать файл, он думает, что файл существует в каталоге, в котором находится веб-приложение. Я знаю, что проблема в том, что я использую System.IO.Path. *, Но я не уверен, что использовать.
Мой взгляд включает этот элемент управления:
@(Html.Kendo().Upload()
.Name("files")
.HtmlAttributes(new { aria_label = "files" })
.Validation(validation => validation.AllowedExtensions(new string[] { ".gif", ".jpg", ".png" }))
Моя подпись метода контроллера:
[CustomAuthorization]
[HttpPost]
[Route("/Content/AddFile")]
public async Task<IActionResult> AddFile(ViewModels.Content.ContentViewModel model)
{
}
и соответствующий код:
foreach (var formFile in model.files)
{
if (formFile.Length > 0)
{
using (var stream = new FileStream(filePath, FileMode.Create)) // what is this FileMode.Create doing?
{
// I'm stuck here, where is this created?
await formFile.CopyToAsync(stream);
}
}
}
У меня есть вспомогательный класс, где я делаю все свои загрузки в BLOB-объект Azure. Работает, подпись метода:
public async Task<bool> SaveContent(string contentName, string contentType, Stream fileContents)
Но я не уверен, как получить поток файла, и я не уверен, что делает часть FileMode.Create. Внутри SaveContent находится место, где создается файл.
Короче говоря, я использую файловый элемент управления Telerik и пытаюсь передать содержимое выбранного файла в поток.
Я использую это как ссылку: https://www.telerik.com/forums/file-upload-full-example-with-server-side-code