ASP.NET MVC-də file əlavə etmək

Nigar
Pragmatech

--

File əlavə edilməsini kiçik bir proyekt örnəyi ilə öyrənəcəyik. Örnəyimizdə PhotoModel adlı classımızın Id və Photo adlı propertyləri var.

İlk növbədə view-da müəyyən əlavələr etməliyik. Əgər daxil edəcəyimiz dəyər file-dırsa ilk növbədə view-da bunu qeyd etməliyik.

Html taglari ilə yazdıqda :

Helperlər vasitəsi ilə :

şəklində qeyd edirik.

Koddan da göründüyü kimi type-hissəsində “file” qeyd etdik. Bu faylın backendə göndərilə bilməsi üçün form taglərində — action, controller adı və method növü qeyd olunmalıdır.

Html taglari ilə yazdıqda :

Helperlər vasitəsi ilə :

Burda qeyd olunan enctype –file-ın şifrələnərək ötürüldüyünü bildirir.

Eyni zamanda daxil edilən file formatında müəyyən məhdudiyyətlər də tətbiq edə bilərik. Bunun üçün “accept” açar sözündən istifadə edirik.

Html taglari ilə yazdıqda :

Helperlər vasitəsi ilə:

Örnəkdə daxil ediləcək faylın yalnız –jpg formatında bir şəkil ola biləcəyi qeyd olunub. Eyni ilə bu məhdudiyyəti javascriptlə metod hazırlayaraq da qoya bilərik. Təhlükəsizlik baxımından məhdudiyyətlərin həm back həm front hissədə qoyulması daha uyğundur.

Controllerimizdə view-dan gələn faylımızın qəbul edilməsi üçün isə “HttpPostedFileBase”-classından dan istifadə olunur. Classın imkanları vasitəsi ilə biz file-ın həcmini, formatını və s. öyrənə bilərik. Eyni zamanda yuxarıda qeyd etdiyimiz məhdudiyyətləri də bu propertylər vasitəsi ilə controllerdə yoxlayacağıq. Bunun üçün sadəcə kiçik bir yoxlanış həyata keçiririk.

Bu örnəkdən göründüyü kimi faylın formatını yoxladıq. View-da isə yoxlanışın nəticəsini görmək üçün aşağıdakı şəkildə qeyd edirik.

Əgər şəkil jpg formatında deyilsə o zaman imageError session-nın dəyəri nulldan fərqli olacaq və ekranda mesajımız görünüəcək.

Bu yoxlamaları etdikdən sonra artıq file-mızı yaddaşa verə bilərik. Burda isə əsas məsələ onu harda yaddaşda saxlamağımızdır.

1. Database-də

2. Ayrıca serverdə

3. Proyektimizdə hər hansı bir qovluqda

Biz proyektimizə Upload qovluğu əlavə edərək faylımızı yaddaşa verəcəyik. İlk növbədə file-mızın adını bir dəyərə mənimsədək.

Sonra isə file-mızın uyğun qovluğa əlavə edilməsi üçün pathi müəyyən edək.

File-ı həmin pathdə yaddaşda saxlayaq.

Sonda isə modelimizin Photo property-sinə həmin file-ı mənimsədək və yaddaşa verək.

Action-ımızın son halı aşağıdakı kimi olacaq:

Mənbə:

  1. https://www.vergic.com/news/file-upload-sharing/

--

--