Skip to content

Завантаження файлів перетягуванням в Asp.Net Core

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (2 оценок, среднее: 5,00 из 5)
Завантаження...

[ Полезный рекламный блок ]

Попробуйте свои силы в игре, где ваши навыки программирования на C# станут решающим фактором. Переходите по ссылке 🔰.


У цій статті ми розглянемо, як виконати завантаження файлу на сервер, шляхом перетягування в Asp.Net Core Mvc.

Завантаження файлів шляхом перетягування (drag-and-drop) має кілька переваг порівняно з вибором файлів по одному. Перетягування файлів є більш інтуїтивним способом завантаження. Користувачеві не потрібно шукати файли в провіднику і вибирати їх по одному. Замість цього він може просто перетягнути файли з робочого столу або з іншої папки прямо на веб-сторінку або в додаток, що скорочує кількість кроків і робить процес простішим.

Під час вибору файлів по одному користувачеві іноді потрібно шукати файли серед безлічі папок, і це може стати складним завданням, особливо якщо у файлів немає явної системи ієрархії. Перетягування файлів усуває необхідність вручну переглядати структуру папок, що скорочує можливість вибрати неправильний файл.

Створення та налаштування проекту

Щоб створити проєкт MultipleFileUploader, запустіть Visual Studio і виберіть у меню File (Файл) – New Project (Створити Проєкт). Вкажіть шаблон проекту ASP.NET Core Web Application (Веб-додаток ASP.NET Core).

Введіть MultipleFileUploader, у полі Name, на наступній сторінці вкажіть Framework .Net 7.0 і натисніть кнопку Create.

Усі завантажені зображення ми зберігатимемо в папці: wwwroot / uploadedFiles, тому одразу створимо її.

Для візуального відображення форми в папку wwwroot / css додамо файл formUploader.css з таким вмістом:

Для читання вхідних файлів і оновлення їхнього вмісту із зазначенням імен файлів, необхідно написати трохи JavaScript коду. У папку wwwroot / js, додамо файл formUploader.js, з таким вмістом:

У цьому додатку ми будемо використовувати валідацію даних на стороні клієнта

Клієнтська валідація дає змогу перевірити введені користувачем дані на стороні клієнта (веб-браузера) до того, як дані будуть відправлені на сервер. Це може бути корисним для забезпечення більш швидкого зворотного зв’язку користувачеві та зниження навантаження на сервер, оскільки деякі прості перевірки можуть бути виконані без відправлення даних на сервер.

Відкриємо файл Views / Shared / _ValidationScriptsPartial.cshtml і змінимо його вміст таким чином:

У проєкті нашого типу, за замовчуванням уже визначено всі необхідні скрипти для валідації даних на стороні клієнта.

Первісне налаштування завершено.

Модель подання

Заради підвищення зручності роботи з додатком у процесі завантаження та обробки файлів, визначимо в корені папку ViewModels, до якої додамо клас UploadFileViewModel.cs, з таким вмістом:

Цей клас містить колекцію завантажуваних файлів і атрибути валідації.

Контролер і подання

Перейдемо в контролер Home і змінимо його вміст таким чином:

Контролер Home, представляє дію, яка обробляє POST-запит, надісланий на сервер з метою завантаження одного або декількох файлів. Код використовує анотації та ін’єкцію залежностей для забезпечення безпеки та доступу до оточення програми.

Атрибут [HttpPost] вказує, що ця дія має обробляти тільки POST-запити.

Атрибут [AutoValidateAntiforgeryToken] забезпечує захист від атак CSRF (міжсайтового підроблення запиту) шляхом автоматичної перевірки токена антифоргері. Цей токен генерується під час формування HTML-форм на клієнтській стороні та має збігатися з очікуваним значенням на сервері.

Інтерфейс IWebHostEnvironment надає інформацію про оточення додатка, включно з шляхом до кореневої папки веб-хостингу, де розміщені статичні файли та інша інформація.

У папці Views / Home, змінимо вміст подання Index.cshtml, таким чином:

Це подання являє собою сторінку з формою для завантаження файлів і використовує модель подання UploadFileViewModel для обробки цих даних на сервері. Воно також підключає стилі та скрипти, які керують відображенням і взаємодією елементів сторінки.

Запустимо додаток і перевіримо його роботу.

Я сподіваюся, що вам сподобалося читати цю статтю, і вона виявилася легкою для розуміння. Будь ласка, дайте мені знати, якщо у вас є якісь коментарі або виправлення.

Так само вам може бути цікава попередня стаття – Bulk Operations в Entity Framework Core.

Ви хочете навчитися писати код мовою програмування C#?

Створювати різні інформаційні системи, що складаються з сайтів, мобільних клієнтів, десктопних додатків, телеграм-ботів тощо.

Переходьте до нас на сторінку Dijix і ознайомтеся з умовами навчання, ми спеціалізуємося тільки на індивідуальних заняттях, як для початківців, так і для просунутих програмістів. Ви можете взяти як одне заняття для опрацювання питання, що вас цікавить, так і кілька, для більш щільної роботи. Завдяки особистому кабінету, кожен студент підвищить якість свого навчання, у вашому розпорядженні:

  • Доступ до пройденого матеріалу
  • Тематичні статті
  • Бібліотека книг
  • Онлайн тестування
  • Спілкування в закритих групах

https://dijix.com.ua

Живи у своєму світі, програмуй у нашому.

Published inAsp.Net Core
Subscribe
Notify of
guest
0 комментариев
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x