Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie die Datei-Upload-Steuerung von .NET, um die Datei web.config so zu ändern, dass große Dateien hochgeladen werden

So verwenden Sie die Datei-Upload-Steuerung von .NET, um die Datei web.config so zu ändern, dass große Dateien hochgeladen werden

高洛峰
高洛峰Original
2016-12-24 13:01:441491Durchsuche

Ändern Sie die Webcong-Datei:

Das Folgende ist der zitierte Inhalt:

<system.web> 
<httpRuntime maxRequestLength="40690" 
useFullyQualifiedRedirectUrl="true" 
executionTimeout="6000" 
useFullyQualifiedRedirectUrl="false" 
minFreeThreads="8" 
minLocalRequestFreeThreads="4" 
appRequestQueueLimit="100" 
enableVersionHeader="true" 
/> 
</system.web>

Die mit dem Hochladen eng verbundenen Inhalte sind:

maxRequestLength

Zeigt ASP an. NET Maximal unterstützte Datei-Upload-Größe.

Dieses Limit kann verwendet werden, um Denial-of-Service-Angriffe zu verhindern, die dadurch verursacht werden, dass Benutzer eine große Anzahl von Dateien an diesen Server weiterleiten.

Die angegebene Größe ist in KB.

Der Standardwert ist 4096 KB (4 MB).

executionTimeout

Gibt die maximale Anzahl von Sekunden an, die eine Anforderung ausführen darf, bevor sie automatisch von ASP.NET geschlossen wird.

Die Einheit ist Sekunden. Stellen Sie diesen Wert beim Hochladen großer Dateien ein.

Wenn der Serverspeicher 512 MB beträgt, können Dateien von 160 MB hochgeladen werden. (Ich habe es nicht ausprobiert. Dies ist die einhellige Meinung vieler Beiträge auf csdn.)

Die Einstellung von web.config ist hier.

Sobald jedoch die Größe der hochgeladenen Datei den Dateigrößenbereich dieser Einstellung überschreitet, tritt der folgende Fehler auf: Die Seite kann nicht angezeigt werden. Die Seite, die Sie anzeigen möchten, ist derzeit nicht verfügbar. Möglicherweise sind auf der Website technische Probleme aufgetreten oder Sie müssen möglicherweise Ihre Browsereinstellungen anpassen.

Obwohl es nicht gelöst werden kann, müssen wir diesen Fehler trotzdem erkennen! Was zu tun? Da es sich bei diesem Fehler um einen Vordergrundfehler handelt, der durch die Dateisteuerung verursacht wird, funktioniert der Versuch, ihn mit try...catch im Hintergrund abzufangen, nicht.

Also dachte ich darüber nach, den Fehlererfassungsseitenmechanismus von .NET zu verwenden, um damit umzugehen. Es ist machbar.

Das Folgende ist der zitierte Inhalt:
1. Richten Sie zuerst web.config ein

<customErrors mode="On"/>

2. Erstellen Sie eine neue error.aspx-Datei speziell zur Fehlererfassung.

3. Fügen Sie den Seitenbefehl zur Startseite der ASPX-Seite hinzu, auf die die Datei hochgeladen wird. ErrorPage="UploadError.aspx"

4. Fügen Sie Code in error.aspx hinzu, um festzustellen, ob es sich bei der Fehlermeldung um einen durch die Datei verursachten Vordergrundfehler handelt.

public class UploadError : System.Web.UI.Page 
{ 
private void Page_Load(object sender, System.EventArgs e) 
{ 
Exception ex = Server.GetLastError(); 
if (ex != null) 
{ 
Response.Redirect("../error.aspx"); 
} 
else //前台错误ex为空值 
{ 
Response.Redirect("uploadexcel.aspx?err=1"); //重新跳转到上传页面, 
加上err参数是为了显示错误信息 
} 
}

5. Fehlermeldung anzeigen.

public class uploadexcel : System.Web.UI.Page 
{ 
private void Page_Load(object sender, System.EventArgs e) 
{ 
if (Request["err"] == "1") 
{ 
Page.RegisterStartupScript("budget","<script language = javascript> 
alert(&#39;Upload file has failed ! File size is too large !&#39;)</script>"); 
} 
} 
}


Weitere Möglichkeiten zur Verwendung der Datei-Upload-Steuerung von .NET, um große Dateien hochzuladen, beachten Sie bitte die PHP-Chinesen Webseite!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn