Метод 1: базовая проверка на основе форм.
Первый метод включает проверку загрузки файла с использованием методов проверки на основе форм. Этот подход фокусируется на проверке файла на стороне сервера после отправки формы. Мы можем использовать встроенную привязку модели и функции ModelState ASP.NET Core MVC для проверки загруженного файла.
[HttpPost]
public IActionResult UploadFile(IFormFile file)
{
if (file == null || file.Length == 0)
{
ModelState.AddModelError("file", "Please select a file to upload.");
return View();
}
// Further validation logic
// ...
// File is valid, process it
// ...
}
Метод 2: проверка размера файла
В некоторых случаях вам может потребоваться ввести ограничения на размер загружаемого файла. Этого можно добиться, проверив свойство Lengthобъекта IFormFile.
[HttpPost]
public IActionResult UploadFile(IFormFile file)
{
const int maxFileSize = 5 * 1024 * 1024; // 5MB
if (file == null || file.Length == 0)
{
ModelState.AddModelError("file", "Please select a file to upload.");
return View();
}
if (file.Length > maxFileSize)
{
ModelState.AddModelError("file", "The file size exceeds the allowed limit.");
return View();
}
// File is valid, process it
// ...
}
Метод 3: Проверка типа файла
Другим общим требованием является ограничение загрузки файлов определенными типами файлов. Вы можете проверить тип файла, проверив расширение файла или тип MIME.
[HttpPost]
public IActionResult UploadFile(IFormFile file)
{
if (file == null || file.Length == 0)
{
ModelState.AddModelError("file", "Please select a file to upload.");
return View();
}
var allowedExtensions = new[] { ".jpg", ".jpeg", ".png" }; // Allowed file extensions
if (!allowedExtensions.Contains(Path.GetExtension(file.FileName).ToLower()))
{
ModelState.AddModelError("file", "Invalid file type. Only JPG, JPEG, and PNG files are allowed.");
return View();
}
// File is valid, process it
// ...
}
Метод 4: проверка на стороне клиента
Чтобы улучшить взаимодействие с пользователем, вы также можете выполнить проверку загрузки файлов на стороне клиента с помощью JavaScript. Это может помочь обнаружить ошибки до того, как форма будет отправлена на сервер.
<form>
<input type="file" id="fileInput" name="file" accept=".jpg, .jpeg, .png">
<span id="fileError" class="text-danger"></span>
<button type="submit">Upload</button>
</form>
<script>
document.querySelector('form').addEventListener('submit', (event) => {
const fileInput = document.querySelector('#fileInput');
const fileError = document.querySelector('#fileError');
if (fileInput.files.length === 0) {
fileError.textContent = 'Please select a file to upload.';
event.preventDefault();
} else if (!['image/jpeg', 'image/png'].includes(fileInput.files[0].type)) {
fileError.textContent = 'Invalid file type. Only JPG, JPEG, and PNG files are allowed.';
event.preventDefault();
}
});
</script>
Проверка загрузки файлов в ASP.NET Core MVC необходима для обеспечения целостности и безопасности вашего приложения. В этой статье мы рассмотрели несколько методов проверки загрузки файлов, включая проверку на основе формы, проверку размера файла, проверку типа файла и проверку на стороне клиента. Объединив эти методы, вы можете создать надежный механизм проверки загрузки файлов в своих приложениях ASP.NET Core MVC.