Азы работы над загрузкой файлов на сервер ASP.NET MVC

.

В этом уроке мы произведем быстрый старт по загрузке фалов и изображений. Начнем с того что создадим проект MVC4, шаблон проекта выберем «простой». Добавим HomeController, который по умолчанию будет содержать:

Добавим View для метода Index, все стандартно, в котором определим код разметки формы через которую мы будем загружать файлы на сервер:



Тут мы просто используем Html хелрпер Html.BeginForm(‘Метод контроллера’, ‘Контроллер’,’Указываем что форма будет адресована методу Post’, ‘здесь обратите внимание мы добавляем новый атрибут new {enctype=»multipart/form-data — с помощью которого мы сообщаем браузеру что будем загружать файл»}’ ). В теле формы стандартный html код разметки, теги <input>. Первый тег дает возможность указать путь к фалу хранящемуся на стороне клиента на компьютере, второй тег отправляет форму на обработку в контроллер, который указан в параметрах формы.

С этим разобрались, если что то не понятно не расстраивайтесь иногда понимание приходит не сразу, в следующих статьях, будет достаточно примеров для закрепления материала.

Переходим к контроллеру Home, в котором определим логику обработки загружаемого файла, добавив метод Upload, который выделен синим цветом.

Основной код написан, но если вы попытаетесь загрузить изображение больше 4 мб, вы получите ошибку, так как это стандартное ограничение на стороне сервера. Что бы изменить ситуацию найдем в файле конфигурации файл Web.config раздел <system.web> где изменим строку  <httpRuntime targetFramework=»4.5″ /> на строку <httpRuntime targetFramework=»4.5″  maxRequestLength=»30000″/> , тем самым задав лимит на загрузку в 30 мб, но вы можете не стесняться и ставить лимиты больше, или из скромности своей ограничить загрузку файлов на меньшие размеры.

Не забываем создать в проекте папку Files. В принципе, если вы все сделали по аналогии, можете запустить проект и загрузить какую нибудь картинку или фотографию, которую вы сможете после загрузки обнаружить в папке Files в корне проекта. В следующем примере мы немного иначе построим логику для разнообразия.