ASP.NET MVCآموزش ها

نحوه آپلود فایل های حجیم در ASP.NET MVC

نحوه آپلود فایل های حجیم در ASP.NET MVC شاید مشکل بسیاری از برنامه نویسان تازه کار باشد که در هنگام آپلود در input type file به آن بر می‌خورند. ما در این مقاله از سری مقالات آموزش برنامه نویسی در وبسایت پرعلم قصد داریم تا این مشکل را بررسی کرده و آن را رفع کنیم. پس با ما همراه باشید.

نحوه آپلود فایل های حجیم در ASP.NET MVC

ابتدا باید یک پروژه ASP.NET MVC برای این منظور بسازید که ما فرض را بر این میگیریم که وقتی شما این به این مشکل برخورد کرده اید و آن را جستوجو کرده اید یعنی پروژه ی خود را ساخته اید و فقط در مرحله آپلود فایل مشکل دارید. اما چنانچه در این مورد نیز مشکل دارید با ما در مقاله مراحل ایجاد پروژه ASP.NET MVC در Visual Studio 2017 همراه باشید.

ساخت فرم ارسال فایل

نحوه آپلود فایل های حجیم در ASP.NET MVC

ابتدا یک فرم و یک Action برای ارسال فایل می‌سازیم، که با استفاده از آن فایل را به سرور ارسال کنیم:

@using(Html.BeginForm(“Upload” , “Home” , new { enctype = “multipart/form-data” }))
{
<input type=”file” name=”File” />
<br />
<input type=”submit” Value=”ارسال” />
}

همانطور که می‌بینید، این فرم، فایل را به اکشن Upload در کنترلر Home ارسال می‌کند. پس به Home Controller رفته و اکشن زیر را می‌سازیم:

public ActionResult Upload(HttpPostedFileBase File)
{
if(File != null)
{
string filename = “MyFile” + Path.GetExtention(File.Filename);
string path = Path.Combine (Server.MapPath(“~/Content/Files/”) , filename);
File.SaveAs ( path );
ViewBag.Message = “فایل با موفقیت آپلود شد”;
return View();
}
ViewBag.Message = “متاسفانه فایل آپلود نشد”;
return View();
}

نحوه آپلود فایل های حجیم در ASP.NET MVC

تنطیمات web.config برای آپلود فایل حجیم

به صورت پیشفرض شما در فرمی مانند فرم بالا که از input type file استفاده می‌کنید، حداکثر حجم فایلی که می‌توانید آپلود کنید برابر با 4 مگابایت می‌باشد. اما اگر در برنامه ی خود نیاز به آپلود فایل حجیم را دارید در قسمت web.config باید تنظیماتی راانجام دهید:

ابتدا در قسمت <system.web> باید تنظیماتی را اضافه کنید مانند زیر:

<system.web>
<httpRuntime targetFramework = “4.6.1” executionTimeout=”999999″ maxRequestLenth=”1048576″ />
</system.web>

اما فقط این کافی نیست و قسمت دیگری را نیز باید به فایل web.config اضافه کنید: (پس از این تنظیمات درباره آنها توضیح خواهم داد)

بلافاصله پس از </system.wb> :

<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowContentLenth=”1073741824″></requestLimits>
</requestFiltering>
</security>
</system.webServer>

اما باید بگوییم که واحد این اندازه در maxRequestLenth برابر با Kilobyte است
و در maxAllowContentLenth برابر با byte می‌باشد.

نحوه آپلود فایل های حجیم در ASP.NET MVC

بنابر این تنظیماتی که ما در این قسمت انجام دادیم مقدار حداکثر حجم آپلود فایل را 1 گیگ قرار دادیم که شما بسته بهنیاز خود می‌توانید آن را تغییر دهید و یا این تنظیمات را همین 1 گیگ قرار داده و طبق دستورات زیر در برنامه حجم فایل را کنترل کنید.

چک کردن حجم فایل در اکشن

برای اینکه حجم فایل آپلود شده توسط کاربر را در اکشن چک کنید و اجازه ی آپلود فایل های حجیم را ندهید می‌توانید از ContentLenth به صورت زیر استفاده کنید:

if(Fiile.ContentLenth / 1024 <= 1024)
{
File.SaveAs(…)
}

طبق این شرط فقط فایل هایی که دارای حجم کمتر یا مساوی 1 مگابایت هستند اجازه Save شدن دارند.

چک کردن پسوند فایل

همچنین برای اینکه پسوند فایل آپلود شده را چک کنید می‌توانید از File.ContentType استفاده کنید. مثلا اگر می‌خواهید فقط تصاویر با فرمت های jpg,png قابل آپلود باشد از شرط زیر استفاده کنید:

if(File.Contenttype==”image/jpeg” || File.ContentType == “image/png”)

برای اطلاعات بیشتر در این باره وهمچنین پیدا کردن ContentType های مختلف اینجا : (Common MIME types) را مشاهده کنید.

امیدوارم که این مقاله برای شما مفید بوده باشد. با آرزوی موفقیت برای همه ی شما کاربران عزیز وبسایت پرعلم

, , , , , , , , , , , , ,
نوشتهٔ پیشین
آموزش آپلود سایت mvc روی هاست plesk
نوشتهٔ بعدی
برترین ترندهای طراحی لوگو سال 2020

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این فیلد را پر کنید
این فیلد را پر کنید
لطفاً یک نشانی ایمیل معتبر بنویسید.
برای ادامه، شما باید با قوانین موافقت کنید

*

code

فهرست