Asp net core MVC загрузка файла на сервер
Хочу загрузить фотографию на сервер. Проблема в том, что когда в диалоговом окне выбираю фото и нажимаю Отправить, то метод ChangeImage в контроллере не отрабатывает.
<div class="container-to-photo">
<img src="~/images/blank-profile-picture.jpg" class="main-image">
<form method="post" asp-controller="Account" asp-action="ChangeImage" enctype="multipart/form-data">
<input type="file" id="fileInput" name="imageFile" accept=".jpg" style="display: none;">
<button class="upload" id="uploadButton" type="submit">Загрузить фото</button>
</form>
</div>
<script>
document.getElementById("uploadButton").addEventListener("click", function () {
document.getElementById("fileInput").click();
});
</script>
Код в контроллере:
public IActionResult ChangeImage(IFormFile imageFile)
{
if (imageFile != null && imageFile.Length > 0)
{
string email = User.Email;
string uploadsFolder = Path.Combine("wwwroot", "UsersFiles", email.ToString());
string uniqueFileName = Path.Combine(uploadsFolder, "blank-profile-picture2.jpg");
using (var fileStream = new FileStream(uniqueFileName, FileMode.Create))
{
imageFile.CopyTo(fileStream);
}
}
return RedirectToAction("UserPage");
}
Источник: Stack Overflow на русском