نمایش نتایج: از شماره 1 تا 1 , از مجموع 1

موضوع: آپلود کردن فایل به سرور در asp.net

  1. #1
    معاونت سایت
    تاریخ عضویت
    2012/06/05
    محل سکونت
    Tabriz
    نوشته ها
    14,398
    سپاس ها
    6,794
    سپاس شده 16,762 در 8,741 پست
    نوشته های وبلاگ
    27

    New 2 آپلود کردن فایل به سرور در 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. کاربر روبرو از پست مفید !MAHSA! سپاس کرده است .


کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •