ASP.NET2005
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

مقاله asp

اذهب الى الأسفل

مقاله asp Empty مقاله asp

پست  taherehfelegari السبت نوفمبر 21, 2009 11:39 am

سلام
شما هم اگر بخواهيد سايتي را با ASP طراحي كنيد حتما به آپلود سايت برخورد كرده ايد ، آموزش زير روش upload فايل را در ASP.Net شرح مي دهد :
اميدوارم برايتان مفيد واقع شود :

آپلود فایل بر روی سرور از طریق کلاینت، یکی از اعمالی است که برنامه نویسان ASP.NET گاها با آن مواجه می شوند.

بدین منظور، از 2 کلاس در ASP.NET استفاده می شود.
1) System.Web.UI.HtmlControls.HtmlInputFile
System.Web.HttpPostedFile (2

اولین کلاس نمایانگر یک کنترل HtmlInputFile است که شامل یک TextBox به همراه یک دکمه ی Browse به منظور انتخاب فایل آپلود شونده توسط کاربر می باشد.

دومین کلاس، نمایانگر فایلی است که توسط کاربر انتخاب شده.
این کلاس از اولین کلاس (HttpInputFile) نمونه سازی یا ایجاد می شود.

کلاس HtmlInputFile:

این کلاس دارای 4 خاصیت بوده که به ترتیب در زیر شرح داده شده است:
Accept: لیستی از انواع فایل هایی که کاربر قادر به آپلود آنها بر روی سرور است.
MaxLength: حداکثر تعداد کاراکترهای مجاز مسیر انتخاب فایل.
PostedFile: این خاصیت، یک شی از نوع System.Web.HttpPostedFile بر می گرداند که نمایانگر فایل انتخاب شده توسط کاربر جهت آپلود است.
Width: این خاصیت نمایانگر طول Text Box ای است که به وسیله HtmlInputFile نمایش داده می شود.

به منظور استفاده از کنترل HtmlInputFile و آپلود فایل، مقدار خاصیت enctype فرم باید برابر با multipart/form-data قرار گیرد.
مثال:
<form enctype="multipart/form-data" runat="server">
Select File to Upload:
<input id="uploadedFile" type="file" runat="server">
<input type=button id="upload"
value="Upload"
OnServerClick="Upload_Click"
runat="server">
</form>


کلاس HttpPostedFile:

این کلاس نمایانگر فایلی است که توسط کاربر جهت آپلود بر روی سرور انتخاب شده.
این کلاس دارای یک متد به نام SaveAs می باشد که فایل انتخاب شده را بر روی سرور ذخیره می کند.
این کلاس دارای 4 خاصیت بوده که به ترتیب در زیر شرح داده شده است:
ContentLength: حجم فایل آپلود شده بر حسب بایت.
ContentType: نوع فایل آپلود شده: مثلا: "image/gif"
FileName: مسیر فایل انتخاب شده توسط کاربر.
نکته مهم: تنها مرورگرهایی که بر روی ویندوز اجرا می شوند، مقدار این خاصیت را بر می گردانند.
InputStream: یکی شی از نوع System.IO.Stream که به فایل آپلود شده اشاره کرده و اجازه کار با فایل را فراهم می کند.

نکته مهم:
خاصیت PostedFile کنترل HtmlInputFile، به فایلی که بر روی سرور آپلود شده اشاره می کند. پس در صورتی که عمل آپلود با موفقیت انجام نشده باشد، این خاصیت مقدار null را بر می گرداند.
به شکل زیر به سادگی می توان از انجام موفقیت آمیز عمل آپلود اطمینان حاصل کرد.

If ( HtmlInputFile1.PostedFile != null )
{
// Done
}
else
{
// Fail
}


پس از انتخاب فایل توسط کاربر، باید یک اشاره گر به فایل انتخاب شده ایجاد گردد:
HttpPostedFile myFile = HtmlInputFile1.PostedFile;


از آنجایی که قصد ذخیره محتویات فایل در یک آرایه (بافر) را داریم، باید اندازه آرایه را برابر با اندازه فایل تعیین کنیم:
int nFileLen = myFile.ContentLength;
byte[] myData = new byte[nFileLen];

حال نوبت ریختن محتویات فایل در آرایه با استفاده از متد Read خاصیت InputStream مرجع شی HttpPostedFile است.
myFile.InputStream.Read(myData, 0, nFileLen);

تنها کار باقی مانده، ذخیره محتویات آرایه بر روی سرور است.
تابع زیر این کار را به راحتی با دریافت مسیری که قرار است فایل بر روی آن ذخیره شود و نام آرایه انجام میدهد:
private void SaveFile(string strPath, ref byte[] Buffer)
{
FileStream myFile = new FileStream(strPath, FileMode.Create);

myFile.Write(Buffer, 0, Buffer.Length);

myFile.Close();
}


نکته مهم:
به منظور آپلود فایل بر روی سرور، اجازه دسترسی Write Permission به پوشه ای که قرار است فایل در آن ذخیره شود، الزامی است
taherehfelegari
taherehfelegari
کاربر متوسط
کاربر متوسط

تعداد پستها : 27
تاريخ التسجيل : 2009-10-26

بازگشت به بالاي صفحه اذهب الى الأسفل

بازگشت به بالاي صفحه

- مواضيع مماثلة

 
صلاحيات هذا المنتدى:
شما نمي توانيد در اين بخش به موضوعها پاسخ دهيد