| |
| |
|
تبلیغات | |
جستجو، دایرکتوری وب فارسی، 118، لغت نامه، تقویم، اخبار و ... در جستجوگر ریسمون | |
| | |
توسط :
مديريت سايت
(1386/11/19) | بازدید :
2439
نحوه ارسال فایل به سرور و آشنایی با کنترل جدید FileUpload در Asp.net 2.0 و نسخه های بعد از آن
ارسال فایل به سرور در برنامه های تحت وب توسط کاربران بسیار ساده و قوی از سوی Asp.net پشتیبانی می شود. به کمک کنترل سرور FileUpload این کار بدون احتیاج به نوشتن خط های زیادی از کد قابل اجراست. در این مقاله مثال هایی از نحوه استفاده از این کنترل را آوردم، اما خاطرنشان می کنم در این مثال ها مسائل امنیتی اعمال نشده است و موضوع امنیت در کنترل FileUpload را بطور مفصل در آینده نزدیک در بخش امنیت در برنامه های وب بطور مفصل شرح خواهیم داد.
|
<form id="form1" runat="server">
<asp:FileUpload id="FileUploadControl" runat="server" />
<asp:Button runat="server" id="UploadButton" text="Upload" onclick="UploadButton_Click" />
<br /><br />
<asp:Label runat="server" id="StatusLabel" text="Upload status: " />
</form>
|
همانطور که در کد بالا مشاهده می کنید کار را با اضافه کردن یک کنترل FileUpload و همچنین یک Button برای فراخوانی متد های لازم جهت بارگذاری فایل در سرور و نیز یک کنترل برچسب (Label) جهت نمایش وضعیت به کاربر در فرم خود، آغاز کردیم. حال کدنویسی را بصورت زیر انجام می دهیم:
protected void UploadButton_Click(object sender, EventArgs e)
{
if(FileUploadControl.HasFile)
{
try
{
string filename = Path.GetFileName(FileUploadControl.FileName);
FileUploadControl.SaveAs(Server.MapPath("~/") + filename);
StatusLabel.Text = "Upload status: File uploaded!";
}
catch(Exception ex)
{
StatusLabel.Text = "Upload status: The file could not be uploaded. The following error occured: " + ex.Message;
}
}
} |
چنانچه شما مشاهده می کنید تقریبا" تمامی کد بالا ساده است. زمانی که دکمه UploadButton فشرده می شود ما وجود یا عدم وجود فایل را در کنترل FileUpload بررسی می کنیم. (آیا کاربر فایلی را انتخاب کرده است یا خیر؟). اگر فایلی وجود داشته باشد با استفاده از متد SaveAs کنترل FileUpload اقدام به بارگذاری و ذخیره کردن فایل در سرور می کنیم. اگر به نحوه استفاده از دستور MapPath توجه داشته باشید واضح است که محل ذخیره کردن فایل شاخه اصلی (Root) سایت است. در پایان پیغام مناسبی را به کاربر نشان می دهیم.
مثال فوق ممکن است که کار راه انداز باشد اما ما هیچ آگاهی از نوع فایل ارسالی و همچنین حجم آن و ... نداریم و در حقیقت ما هیچ چیز را کنترل نمی کنیم.حال به قطعه کد زیر توجه کنید :
protected void UploadButton_Click(object sender, EventArgs e)
{
if(FileUploadControl.HasFile)
{
try
{
if(FileUploadControl.PostedFile.ContentType == "image/jpeg")
{
if(FileUploadControl.PostedFile.ContentLength < 102400)
{
string filename = Path.GetFileName(FileUploadControl.FileName);
FileUploadControl.SaveAs(Server.MapPath("~/") + filename);
StatusLabel.Text = "Upload status: File uploaded!";
}
else
StatusLabel.Text = "Upload status: The file has to be less than 100 kb!";
}
else
StatusLabel.Text = "Upload status: Only JPEG files are accepted!";
}
catch(Exception ex)
{
StatusLabel.Text = "Upload status: The file could not be uploaded. The following error occured: " + ex.Message;
}
}
} |
در کد فوق ما دو خاصیت داریم ContentLength و ContentType که به کمک آن ها نوع فایل و حجم آن را بررسی می کنیم. در این بخش ما کاربر را ملزم به انتخاب فایل تصویر از نوع JPEG و همچنین حداکثر حجم 100 کیلو بایت کرده ایم.
پی نوشت:
دقت داشته باشید که بهتر است یک پوشه اختصاصی با مجوز write در سرور به منظور ارسال فایل در نظر بگیرید.
همه مقالات
کنترل های وب
را ببینید.
| |