Nagy fájlok feltöltése a FileUpload vezérlővel

Az ASP.NET a 2.0 óta tartalmazza a FileUpload vezérlőt. Használata elég egyszerű, például így lehet a feltöltött fájlokat a webalkalmazás files nevű mappájába menteni:

<form id="mainForm" runat="server">
    <asp:fileupload ID="upload" runat="server">
    </asp:fileupload>  
    <br />
    <asp:Button ID="btnOK" runat="server" Text="Feltöltöm" onclick="btnOK_Click" />  
</form>
protected void btnOK_Click( object sender, EventArgs e )
{
    this.upload.SaveAs( Path.Combine( Server.MapPath( "~/files" ), this.upload.FileName ) );
}

Az első meglepetés általában akkor éri az embert, amikor nagy fájlokat szeretne feltölteni, ennek ugyanis exception a következménye. A jelenség oka, hogy a feltöltött fájl POST-ként utazik a szerverig, a POST-olható adatok maximális mérete azonban korlátozott.

A következő meglepetés általában az, hogy ha valaki lassan (sokáig) tölt fel egy fájlt, például modemmel, akkor annak szintén kivétel a vége. Itt az a magyarázat, hogy egy kérés feldolgozási ideje szintén korlátozott, és a feltöltő ezt lépi túl. (Ennek az az értelme, hogy a problémás, például végtelen ciklusban futó válasz-generáló szálakat a rendszer kilövi.)

Mindkét limit állítható az asp.net runtime átparaméterezésével. Erre például a web.config-ban van lehetőség:

<system.web>
    ...
        
    <!--
        maxRequestLength : "feltoltheto" tartalom max merete kilobyteban
        executionTimeout : keres kiszolgalasanak max ideje masodpercben
    -->
    <httpRuntime maxRequestLength="1024000" executionTimeout="3600" />
</system.web>


Dávid Zoltán

Dávid Zoltán Mérnök Informatikusként végeztem a BME-n, jelenleg webfejlesztéssel és gépi tanulással foglalkozom.

2008.02.22. 8:38:38 | Permalink | Hozzászólások: 0 | Tárgyszavak:


  • A lényeg kiemelése

    Balássy György (MS RD, ASP.NET MVP, MCTS) A Word 2003-ban volt egy Autosummarize funkció, amely nevéhez hűen kiemelte a lényeget egy dokumentumból. A Word 2007-ben is elérhető ez a szolgáltatás, azonban alapértelmezés szerint nincs kint a szalagon, nekünk kell kitenni. Tovább »
  • Web Slice készítése Alternative Display Source fejlesztési minta használatával (19:25)

    Fekete Krisztián A Web Slice-al foglalkozó sorozatunk előző két részében megismert fejlesztési mintákkal létrehozott Web Slice-ok testreszabhatóságának sajnos vannak korlátjai. Ezekben a web szeletekben nem használhatunk scripteket (pl.: JavaScriptet), illetve ActiveX kontrolokat sem. Nem esett szó továbbá eddig a Web Slice-ok dizájnolhatóságáról sem. A standard valamint az Alternative Update Source módszerekkel készített web szeletek esetén ez utóbbi téren is kompromisszumok kötésére kényszerülünk. Az Alternative Display Source minta azonban az összes imént említett problémára kínál valamilyen alternatív megoldást. Tovább »


Írja meg Ön is véleményét!


Hozzászólásokat csak regisztrált, bejelentkezett felhasználóktól tudunk elfogadni!

Hozzászólások