2012-03-14 5 views
2

Je rencontre un problème lors de l'utilisation de FileUpload pour les fichiers volumineux. Si je télécharge un petit fichier (~ 10kB), cela fonctionne très bien. Le téléchargement d'un fichier volumineux (~ 60 Mo) ne génère pas d'exception, il suffit de recharger la page. Avant que quiconque demande: <httpRuntime maxRequestLength="2097151" executionTimeout="3600" waitChangeNotification="1" maxWaitChangeNotification="3600" requestValidationMode="2.0" />ASP FileUpload Silent Fail

Page:

<%@ AutoEventWireup="true" CodeFile="~/LargeFileUploadControl.aspx.cs" Inherits="LargeFileUploadControl" %> 
<html> 
<body> 

<form runat="server"> 
<asp:Label ID="theOnlyLabel" runat="server" Text="Uploaded files will go to a place"/><br /> 
<asp:FileUpload ID="theOnlyUpload" runat="server" /><br /> 
<asp:Button ID="theOnlyButton" onClick="StartUpload" Text="Upload" runat="server" /> 
</form> 
</body> 
</html> 

code derrière:

public partial class LargeFileUploadControl:Page 
{ 
public string _uploadDir; 

/// <summary> 
/// Content loaded event handler 
/// </summary> 
protected override void OnLoad(EventArgs e) 
{ 
    base.OnLoad(e); 
    _uploadDir = "D:\\web\\tikt.imaginuity.com\\TIKT\\media\\TIKT\\Global Large Uploads\\"; 
    theOnlyLabel.Text = "Uploaded files will go to " + _uploadDir; 
} 


protected void StartUpload(object sender, EventArgs e) 
{ 
    if (theOnlyUpload.HasFile) 
    { 
     theOnlyLabel.Text = "Uploading..."; 
     theOnlyUpload.SaveAs(_uploadDir + theOnlyUpload.FileName); 
     theOnlyLabel.Text = "File saved to " + _uploadDir + theOnlyUpload.FileName; 
    } 
    else 
    { 
     theOnlyLabel.Text = "No file to upload"; 
    } 

    return; 
} 
} 

EDIT: j'avais déjà essayé ci-dessous la réponse acceptée, ce que je pensais. En regardant à nouveau, j'ai découvert qu'il y avait deux sections<system.webServer> dans mon web.config que les deux avaient besoin de changement.

Répondre

2

Ceci résoudra le problème, si vous utilisez iis7. J'ai testé sur la taille du fichier de téléchargement de plus de 400 Mo,

Ajoutez la configuration suivante dans votre fichier web.config sous élément.

<security> 
    <requestFiltering> 
    <requestLimits maxAllowedContentLength="524288000"/> 
    </requestFiltering> 
</security> 
0

font executionTimeout = "9000" dans votre balise ...

0

Check out SlickUpload: http://slickupload.com/

Même si vous ne comptez pas utiliser la version gratuite, ils font un travail très agréable de parler pour atténuer les limites de demande dans IIS 6 et IIS 7, dans leurs documents:

http://slickupload.com/documentation/installation

En particulier, naviguez jusqu'à cette page et effectuez un contrôle-F pour "requestFiltering" et regardez la section qu'ils mentionnent ajouter à web.config.