آموزش ASP.Net > کنترل های استاندارد ASP.Net > کنترل FileUpload
نحوه Upload کردن فایل ها توسط کنترل FileUpload در ASP.Net
مقدمه :
کنترل FileUpload این امکان را به کاربران می دهد تا بتوانند براحتی فایل های مورد
نظر خود را از روی کامپیوتر به سرور آپلود نمایند . فایلی که قرار است آپلود شود ،
به عنوان بخشی از درخواست مرورگر در هنگام Submit صفحه ، به سرور ارسال می شود . پس
از اینکه فایل به طور کامل به سرور منتقل شد ، می توانید آن را به وسیله کد مورد نظر
خود ، مدیریت نمایید .
نکته : حداکثر حجم فایل مجاز برای آپلود فایل به سرور ، توسط خاصیت
MaxRequestLength کنترل FileUpload تعیین می شود . اگر کاربر تلاش نماید ، فایلی بزرگتر
از حجم تعیین شده را بفرستد ، آپلود فایل کنسل می شود .
نحوه ارسال یک فایل به سرور توسط کنترل FileUpload :
- یک کنترل FileUpload
را از بخش کنترل های استاندارد منوی Toolbox بر روی صفحه قرار دهید .
- در یک مدیریت کننده رویداد صفحه ، مثل رویداد Page_Load کارهای زیر را انجام دهید :
- مطمثن شوید که آیا کنترل مورد نظر شما دارای یک فایل برای آپلود به سرور است . به وسیله
چک کرد خاصیت HasFile کنترل FileUpload .
- نام یا نوع فایل آپلود شده را ( در صورت نیاز ) چک نمایید ، تا مطمئن شوید کاربر فایلی
مطابق درخواست شما آپلود خواهد کرد . برای چک کردن نوع MIME فایل ، مقدار شی ایجاد
شده HttpPostedFile خاصیت PostFile را فراخوانی کنید . سپس می توانید به وسیله
خاصیت ContentType فایل Post شده ، نوع آن را مشخص کرده و چک نمایید .
- فایل آپلود شده را در مسیر مورد نظر خود ذخیره نمایید . برای این منظور می توانید متد
SaveAs شی HttpPostedFile را فراخوانی کرده و یا فایل آپلود شده را به عنوان جرایانی
از داده ها ( Bytes ) ، توسط خاصیت InputStream شی HttpPostedFile مدیریت نمایید .
موارد فوق را در قالب مثال عملی زیر نشان داده ایم .
مثال عملی :
مثال : مثال زیر نحوه کامل کار با یک فایل آپلود شده را نشان می دهد
. در مرحله اول کد طراحی شده ، نوع فایل را با مجموعه فایل های مجاز چک کرده و در صورت
اشتباه بودن ، درخواست را کنسل می کند .
در مرحله دوم فایل آپلود شده در مسیر پوشه UploadedImages قرار می گیرد .
در مرحله بعدی فایل آپلود شده با همان نام اصلی خود که بر روی کامپیوتر کاربر است ،
ذخیره می شود .
نکته مهم : توجه داشته باشید که برای تعیین نام فایل آپلود شده از
خاصیت FileName کنترل FileUpload استفاده شده است . زیرا خاصیت FileName شی HttpPostedFile
، نام و مسیر کامل فایل را بر می گرداند و طولانی است ! .
|
VB کد
|
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Handles Me.Load
If IsPostBack Then
Dim path As String = Server.MapPath("~/UploadedImages/")
Dim fileOK As Boolean = False
If FileUpload1.HasFile Then
Dim fileExtension
As String
fileExtension = System.IO.Path.
_
GetExtension(FileUpload1.FileName).ToLower()
Dim allowedExtensions As
String() = {".jpg", ".jpeg", ".png", ".gif"}
For i As Integer = 0 To allowedExtensions.Length
- 1
If fileExtension = allowedExtensions(i) Then
fileOK = True
End
If
Next
If fileOK Then
Try
FileUpload1.PostedFile.SaveAs(path & FileUpload1.FileName)
Label1.Text = "File uploaded!"
Catch ex As Exception
Label1.Text = "File could not be uploaded."
End Try
Else
Label1.Text = "Cannot accept files of this type."
End
If
End If
End If
End Sub
|
|
C# کد
|
protected void Page_Load(object sender, EventArgs e)
{
if(IsPostBack)
{
Boolean
fileOK = false;
String path = Server.MapPath("~/UploadedImages/");
if (FileUpload1.HasFile)
{
String fileExtension = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();
String[ ] allowedExtensions = {".gif", ".png", ".jpeg", ".jpg"};
for (int i = 0; i < allowedExtensions.Length; i++)
{
if (fileExtension == allowedExtensions[ i ])
{
fileOK = true;
}
}
}
if (fileOK)
{
try
{
FileUpload1.PostedFile.SaveAs(path + FileUpload1.FileName);
Label1.Text = "File uploaded!";
}
catch (Exception ex)
{
Label1.Text = "File could not be uploaded.";
}
}
else
{
Label1.Text = "Cannot accept files of this
type.";
}
}
}
|
راجع این مطلب
سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...
>>>>> ورود به انجمن تخصصی
نطر خودتان درباره این صفحه را با ما در میان گذاشته و در صورت تمایل از Developer1
حمایت نمایید :