ورود کاربران VIP سرزمین دانلود، مرجع دانلود و آموزش رایگان نرم افزار

منوی سایت



آپلود کردن فایل به سرور در ASP.NET

Rating: 5 - 10 votes

آپلود کردن فایل به سرور در ASP.NET


کدهای مربوط به Upload کردن فایل به سرور را باید به دو قسمت تقسیم نمود. قسمت اول شامل کدهایی است که نحوه نمایش در مرورگر را شامل می شوند و اساس آن بر HTML است. و قسمت دوم مربوط به طرف سرور است که شامل کدهایی است که با ASP.NET نوشته می شوند. برنامه زیر حاوی کدهای مربوطه برای انجام این کار به صورات خیلی ساده و ابتدایی می باشد. همانطور که ملاحظه می کنید برخلاف ASP کلاسیک، نیاز به وجود Component خاصی نمی باشد و این کار در ASP.NET بصورت خیلی ساده انجام پذیر است.


Upload.aspx:
<HTML>
<HEAD>
<TITLE>Uploading File...</TITLE>
<Script language="vb" runat="server">
sub page_load(s as object,e as EventArgs)
    If Not (MyInputFile.PostedFile Is Nothing) Then
        MyInputFile.PostedFile.SaveAs("c:filename.ext")
        Response.write("Your File was saved on the server...")
    End If
end sub
</script>
</HEAD>
<BODY>
    <FORM method="post" encType="multipart/form-data">
        <input id="MyInputFile" type="file" name="MyInputFile" runat="server">
        <input type="submit" value="Submit">
    </FORM>
</BODY>
</HTML>


در زیر به شرح و توضیح برنامه بالا می پردازیم:

کدهای مربوط به طرف Client:
به دلیل آنکه در این قسمت، ارسال اطلاعات به سرور را داریم، باید کدهای مربوطه درون یک فرم قرار گیرند. اما لازم است که ویژگی encType آن فرم را به صورت زیر مقدار دهی کنیم، زیرا در غیر اینصورت فایل انتخاب شده توسط کاربر به سرور ارسال نخواهد شد:


encType="multipart/form-data"


در HTML کنترلی وجود دارد که وظیفه دریافت نام فایل و ارسال آن به سرور را عهده دار می باشد:


<input id="MyInputFile" type="file" name="MyInputFile" runat="server">


توجه کنید که این کنترل را به صورت یک سرور کنترل در می آوریم تا بتوانیم در ASP.NET از توانایی های آن استفاده نماییم و به همین دلیل ویژگی runat="server" را به کنترل مربوطه اضافه کرده ایم. بنابراین کد مربوط به قسمت Client به صورت زیر خواهد بود:


<body>
<form method="post" encType="multipart/form-data">
<INPUT id="MyInputFile" type="file" name="MyInputFile" runat="server">
<input type="submit" value="Submit">
</form>
</body>


کدهای مربوط به طرف Server:
این قسمت کدهایی را شامل می شود که برای ذخیره کردن فایل بر روی سرویس دهنده مورد استفاده قرار می گیرند.همانطور که گفته شد شئ مربوط به دریافت نام فایل را به صورت سرور کنترل قرار دادیم تا بتوانیم از خصوصیات آن در سرور استفاده کنیم (در اینجا نام آنرا MyInputFile درنظر گرفته ایم). یکی از خصوصیات این شئ، شئ PostedFile می باشد که به فایل ارسالی توسط کاربر اشاره می کند. این شئ نیز شامل متدی است که اقدام به ذخیره فایل می کند. بنابراین قبل از ذخیره کردن باید مطمئن شد که آیا شئ PostedFile به چیزی اشاره می کند و یا اینکه تهی است. برای این منظور کد مربوط به ذخیره سازی را در شرط زیر قرار می دهیم:


If Not (MyInputFile.PostedFile Is Nothing) Then


و درصورت صحیح بودن شرط، اقدام به ذخیره سازی می نماییم. متد SaveAs شئ PostedFile دارای پارامتری است که محل و نام فایلی که قرار است بر روی سرور ذخیره شود را مشخص می کند.

بنابراین کد طرف سرور به صورت زیر خواهد بود:


<script language="vb" runat="server">
   sub page_load(s as object,e as EventArgs)
      If Not (MyInputFile.PostedFile Is Nothing) Then
         MyInputFile.PostedFile.SaveAs("c:filename.ext")
         Response.write("Your File was saved on the server...")
      End If
   end sub
</script>


چند نکته:
دیگر خصوصیات شی PostedFile به صورت زیر است:
ContentLength: به اندازه فایل ارسالی اشاره میکند.
• ContentType: MIME فایل ارسالی را مشخص می کند که در تشخیص نوع فایل دریافتی کمک می کند.
(بعضی از انواع رایج MIME عبارت اند از : text/plain ، image/gif ، image/jpeg ، audio/mpeg ، application/msword ، application/octed-stream ، video/mpeg ، audio/wav و...)
FileName: نام فایل و مسیر آن در کامپیوتر شخص کاربر را معین می کند.(مانند C:/images/personal/myface.jpg)

یک نکته مهم:
توجه کنید که به طور پیش فرض طول داده های ارسالی در یک request حداکثر 4096 بایت (یا همان 4 kb ) می باشد. بدین معنی که یک فایل ارسالی حداکثر می تواند 4 kb باشد. برای اینکه این مقدار را به مقدار لازم و مورد نیاز افزایش دهید باید در فایل web.config ویا machine.config در قسمت <system.web> در صورتیکه قسمت زیر موجود نیست آنرا اضافه کنید


<httpRuntime maxRequestLength="1000000"/>


ودر صورت وجود مقدار maxRequestLength را به مقدار دلخواه تنظیم کنید. این مقدار بر حسب بایت می باشد. در مثال بالا مقدار ماکزیمم فایل ارسال یک میلیون بایت (حدود 1 MGB) می باشد. به عنوان نمونه یک فایل web.config که فقط نیاز فوق را برآورده سازد به صورت زیر خواهد بود:


Configuration file : web.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration >
   <system.web>
      <httpRuntime maxRequestLength="1000000" />
   </system.web>
</configuration>


( 2 کامنت - مشاهده کامنت ها )



 



سوالات و نظرات کاربران در مورد این مطلب (2)

  1. س

    اگه بخوام یه عکس اینجا یا سایت دیگه برای (مثلا سوال درباره آن) قرار بدم که شما با کلیک روی اون لینک، آن عکس را ببینید باید چیکار کنم؟ چون در خیلی سایتها دیدم افراد سوال میپرسند بعد یک آدرس اینترنتی قرار دادند و میگن اینجا عکسش را ببینید. خیلی ممنونم

     

    سرزمین دانلود:

    باید عکس خود را در جایی آپلود کنید.

    سایت های زیادی برای این کار وجود دارند. عبارت آپلود عکس را در گوگل جستجو کنید.

    بعد از آپلود عکس در یک سایت مخصوص این کار، آن سایت لینک عکس را به شما میدهد.


  1. با سلام لطف کنید به زبان سی شارپ قرار بدین.پیش پیش از شما ممنونم




نکات مهم :

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

* نام 
آدرس ايميل (برای دریافت پاسخ از طریق ایمیل)
* شماره موبایل (برای دریافت پاسخ از طریق SMS)
توجه: ایمیل و موبایل شما فقط برای دریافت پاسخ سایت بوده و نمایش داده نمیشود.
* متن

* کد امنیتی
کد امنیتی


(اگر کد امنیتی واضح نیست، روی آن کلیک کنید تا عوض شود)
 


توجه : نظر شما بعد از تایید از طرف سایت، نمایش داده خواهد شد.
سرزمین دانلود، مرجع دانلود و آموزش نرم افزار

سرزمین دانلود را دنبال کنید !

عضویت در خبرنامه سرزمین دانلود

با وارد کردن ایمیل خود و سپس تایید آن، جدیدترین مطالب و نرم افزار ها برای شما ارسال می شود:



------------------------------------------